SQL Server - 查询以查看数据库中每个表的权限

时间:2017-11-19 18:35:55

标签: sql sql-server tsql permissions

我们正在使用数据库项目来跟踪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查询,查看为数据库中的每个表授予的权限?因此,我们可以查看已授予的权限。

此外,任何有关使其更加强大的建议都将受到赞赏。

1 个答案:

答案 0 :(得分:2)

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

来自documentation

  

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

根据需要创建ROLES之后,这样可以轻松实现,只需在其上添加成员,无需检查每个成员权限。