如何让用户访问SQL Server中的sys.master_files?

Bet*_*ide 7 sql sql-server-2008-r2

我需要为数据库用户提供对sys.master_files表的读访问权限.我怎样才能做到这一点?

目前用户具有以下权限:

在此输入图像描述

调用SELECTsys.master_files返回一个空的结果.我还测试了与sa用户按预期工作的相同查询.

Mar*_*lli 7

让你成功运行

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在用户数据库 ( texasTexasLog) 中查询得到相同的结果。