【问题标题】:SQL Server - Query to view permissions on every table in databaseSQL Server - 查询以查看数据库中每个表的权限
【发布时间】:2018-05-02 23:51:10
【问题描述】:

我们正在使用 DB 项目来跟踪 Db 更改,并使用标准 XML 文件在本地发布更改,以测试服务器、生产等。目前我们只是复制粘贴代码,如下所示,以授予对我们创建的新表的权限。

GRANT SELECT
    ON [dbo].[OrganisationSite] TO [Company_FullAccess]
    AS [dbo];
GO
GRANT UPDATE
    ON [dbo].[OrganisationSite] TO [Company_FullAccess]
    AS [dbo];
GO
GRANT INSERT
    ON [dbo].[OrganisationSite] TO [Company_FullAccess]
    AS [dbo];
GO
GRANT DELETE
    ON [dbo].[OrganisationSite] TO [Company_FullAccess]
    AS [dbo];
GO

这很容易出错,因为我们可能忘记授予特定权限。

有什么方法可以创建 SQL 查询,查看数据库中每个表授予的权限?因此我们可以检查已授予哪些权限。

此外,任何有关使其更强大的建议都将不胜感激。

【问题讨论】:

  • 为什么不CREATE ROLE 这样你只会检查成员。
  • @Sami,非常感谢
  • 很高兴为您提供帮助:)

标签: sql sql-server tsql permissions


【解决方案1】:

在这种情况下,最好的办法是使用 ROLE,并根据需要添加成员。

来自documentation:

角色是数据库级别的安全对象。创建角色后,使用 GRANT、DENY 和 REVOKE 配置角色的数据库级权限

这样会方便你根据需要创建ROLES之后,你可以在上面添加成员,不需要检查每个成员的权限。

【讨论】:

    猜你喜欢
    • 2011-10-26
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-12
    • 2022-01-22
    相关资源
    最近更新 更多