0
有没有办法查看添加到SQL Server中特定角色的所有权限?如何在SQL Server中查看角色权限?
在SSMS中查看角色的“属性”时,我只能看到该角色拥有的模式。
在我们无法使用GUI查看的情况下,是否有系统视图可供调用?
编辑:
更确切地说,我希望能够看到相应的现有角色像“的db_owner”,例如数据库中的所有权利。
有没有办法查看添加到SQL Server中特定角色的所有权限?如何在SQL Server中查看角色权限?
在SSMS中查看角色的“属性”时,我只能看到该角色拥有的模式。
在我们无法使用GUI查看的情况下,是否有系统视图可供调用?
编辑:
更确切地说,我希望能够看到相应的现有角色像“的db_owner”,例如数据库中的所有权利。
你可以玩SYS。并尝试做一个 下面的示例:
WITH perms_cte as
(
select USER_NAME(p.grantee_principal_id) AS principal_name,
dp.principal_id,
dp.type_desc AS principal_type_desc,
p.class_desc,
OBJECT_NAME(p.major_id) AS object_name,
p.permission_name,
p.state_desc AS permission_state_desc
from sys.database_permissions p
inner JOIN sys.database_principals dp
on p.grantee_principal_id = dp.principal_id
)
--users
SELECT p.principal_name, p.principal_type_desc, p.class_desc, p.[object_name], p.permission_name, p.permission_state_desc, cast(NULL as sysname) as role_name
FROM perms_cte p
WHERE principal_type_desc <> 'DATABASE_ROLE'
UNION
--role members
SELECT rm.member_principal_name, rm.principal_type_desc, p.class_desc, p.object_name, p.permission_name, p.permission_state_desc,rm.role_name
FROM perms_cte p
right outer JOIN (
select role_principal_id, dp.type_desc as principal_type_desc, member_principal_id,user_name(member_principal_id) as member_principal_name,user_name(role_principal_id) as role_name--,*
from sys.database_role_members rm
INNER JOIN sys.database_principals dp
ON rm.member_principal_id = dp.principal_id
) rm
ON rm.role_principal_id = p.principal_id
也还有的这个系统SP
exec sp_helprole
谢谢你的建议,但它不符合我的需要。 (就像我对DNac说的)。 – Spilarix
如何http://consultingblogs.emc.com/jamiethomson/archive/2007/02/09/ SQL-Server-2005_3A00_-View-all-permissions --_ 2800_2_2900_.aspx – DNac
它不符合我的需要。我想要角色权限,而不是用户权限。 – Spilarix
你检查过这个吗? http://dba.stackexchange.com/questions/36618/list-all-permissions-for-a-given-role – dcp