Neil P Asked: 2017-03-09 02:16:13 +0800 CST2017-03-09 02:16:13 +0800 CST 2017-03-09 02:16:13 +0800 CST 查找已明确授予用户对某个对象的权限的所有实例 772 是否可以为某个用户生成用户已被明确访问的对象列表? 我想查看用户拥有明确权限的所有项目的列表,不包括通过角色等继承的任何权限。 sql-server sql-server-2014 1 个回答 Voted Best Answer Daniel Hutmacher 2017-03-09T04:44:52+08:002017-03-09T04:44:52+08:00 检查sys.database_permissionsDMV,其中包含所有授予和拒绝的权限。 major_idwill 指向object_idin ,sys.objects指向minor_idin column_id(sys.columns如果适用)。 和列分别指向授予和授予用户 ID,您可以在 中找到grantee_principal_id它们。grantor_principal_idsys.database_principals 请记住,权限不仅可以分配给用户,还可以分配给用户可以继承的服务器或数据库角色。此外,授予和拒绝的权限可能会发生冲突,在这种情况下,应用两条规则中限制性更强的一条。 我不久前写了一个博客系列,其中详细介绍了权限。
检查
sys.database_permissions
DMV,其中包含所有授予和拒绝的权限。major_id
will 指向object_id
in ,sys.objects
指向minor_id
incolumn_id
(sys.columns
如果适用)。和列分别指向授予和授予用户 ID,您可以在 中找到
grantee_principal_id
它们。grantor_principal_id
sys.database_principals
请记住,权限不仅可以分配给用户,还可以分配给用户可以继承的服务器或数据库角色。此外,授予和拒绝的权限可能会发生冲突,在这种情况下,应用两条规则中限制性更强的一条。
我不久前写了一个博客系列,其中详细介绍了权限。