Bet*_*ide 7 sql sql-server-2008-r2
我需要为数据库用户提供对sys.master_files表的读访问权限.我怎样才能做到这一点?
目前用户具有以下权限:

调用SELECT的sys.master_files返回一个空的结果.我还测试了与sa用户按预期工作的相同查询.
让你成功运行
select * from sys.master_files
Run Code Online (Sandbox Code Playgroud)
您需要授予的最小权限如下:
GRANT VIEW ANY DEFINITION TO [texas_user]
GO
Run Code Online (Sandbox Code Playgroud)
我已经测试过,它在sql 2008 r2上工作正常
regards
marcelo
Run Code Online (Sandbox Code Playgroud)
小智 0
这些服务器级别权限也可以通过 T-SQL 脚本添加,例如:
use master
grant ALTER ANY DATABASE to [texas_user]
grant VIEW ANY DEFINITION to [texas_user]
grant CREATE ANY DATABASE to [texas_user]
Run Code Online (Sandbox Code Playgroud)
结果将是相同的:用户texas_user将能够从sys.master_files. 但这些能力可能比你想要的要多得多。也许,您可以sys.database_files在用户数据库 ( texas、TexasLog) 中查询得到相同的结果。