【问题标题】:How to give a user access to sys.master_files in SQL Server?如何授予用户访问 SQL Server 中 sys.master_files 的权限?
【发布时间】:2013-09-25 13:22:48
【问题描述】:

我需要授予数据库用户对 sys.master_files 表的读取权限。我该怎么做?

当前用户有这个权限:

sys.master_files 上调用SELECT 返回一个空结果。我还使用sa 用户测试了相同的查询,它按预期工作。

【问题讨论】:

  • relevant Technet documentation - 可供任何人免费使用 - 明确说明sys.master_files 目录视图需要哪些权限:查看相应行所需的最低权限是 CREATE DATABASE、ALTER ANY DATABASE 或 VIEW ANY DEFINITION。
  • 是的,我知道,但我不知道如何在 GUI 中应用此权限。
  • 它们是服务器级别的权限,而不是数据库级别的权限,单击上面截图时所在屏幕中的安全部分,您​​将看到它们。
  • 谢谢!请随意添加您的评论作为答案,以便我可以接受分析器。

标签: sql sql-server tsql permissions sql-server-2008-r2


【解决方案1】:

为你顺利运行

select * from sys.master_files

您需要授予的最低权限如下:

GRANT VIEW ANY DEFINITION TO [texas_user]
GO

我已经测试过,它在 sql 2008 r2 上运行良好

regards
marcelo

【讨论】:

    【解决方案2】:

    这些服务器级别的权限也可以通过 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]
    

    结果将相同:用户texas_user 将能够从sys.master_files 接收结果。但可能这些能力比你想要的要多得多。可能,您可以在用户数据库中查询sys.database_files 得到相同的结果(texasTexasLog)。

    【讨论】:

    • 小备注。上面的代码你需要用sa权限执行
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-13
    • 1970-01-01
    • 1970-01-01
    • 2010-09-26
    • 2011-04-29
    • 2016-01-18
    • 2019-10-03
    相关资源
    最近更新 更多