sys.master_files :
Содержит строку для файла базы данных, сохраненную в базе данных master.Это единственное общесистемное представление.
sys.database_files :
Содержит строку для файла базы данных, хранящуюся всама база данных.Это представление для каждой базы данных.
Итак, SELECT * FROM sys.master_files
должен перечислять файлы для каждой базы данных в экземпляре, тогда как SELECT * FROM sys.database_files
должен перечислять файлы для конкретного контекста базы данных.
Тестируя это здесь (SQL 2K8), он работает как указано выше?
Обновление: Если вы не видите строки из sys.master_files, это может быть проблема с разрешениями, так какСостояние BOL:
Минимальные разрешения, необходимые для просмотра соответствующей строки: CREATE DATABASE, ALTER ANY DATABASE или VIEW ANY DEFINITION.
Whereas для sys.database_filesпросто требует членства в общественной роли.