A quick example of using the system views to look at the server principals and the database principals. First, let's look at the database principals:
SELECT dbp.class_desc AS GrantedObjectType, CASE dbp.class_desc WHEN 'DATABASE' THEN DB_NAME (dbp.major_id) WHEN 'OBJECT_OR_COLUMN' THEN OBJECT_NAME(dbp.major_id) WHEN 'SCHEMA' THEN SCHEMA_NAME(dbp.major_id) END AS GrantedObjectName, COL_NAME(dbp.major_id, dbp.minor_id) AS GrantedColumnName, dbp.state_desc AS State, dbp.permission_name AS Permission, dpGrantor.type_desc AS GrantorType, dpGrantor.name AS Grantor, dpGrantee.type_desc AS GranteeType, dpGrantee.name AS Grantee, dpRole.name AS GranteeRole FROM sys.database_permissions dbp JOIN sys.database_principals dpGrantor ON dbp.grantor_principal_id = dpGrantor.principal_id JOIN sys.database_principals dpGrantee ON dbp.grantee_principal_id = dpGrantee.principal_id JOIN sys.database_role_members droGrantee ON dbp.grantee_principal_id = droGrantee.member_principal_id JOIN sys.database_principals dpRole ON droGrantee.role_principal_id = dpRole.principal_id JOIN sys.objects o ON dbp.major_id = o.object_id ORDER BY GrantedObjectType, GrantedObjectName, Permission, State
The server principals are done in a similar way:
SELECT svp.class_desc AS GrantedObjectType, SCHEMA_NAME(svp.major_id) AS GrantedObjectName, svp.state_desc AS State, svp.permission_name AS Permission, spGrantor.type_desc AS GrantorType, spGrantor.name AS Grantor, spGrantee.type_desc AS GranteeType, spGrantee.name AS Grantee, spRole.name AS GranteeRole FROM sys.server_permissions svp JOIN sys.server_principals spGrantor ON svp.grantor_principal_id = spGrantor.principal_id LEFT JOIN sys.server_principals spGrantee ON svp.grantee_principal_id = spGrantee.principal_id LEFT JOIN sys.server_role_members sroGrantee ON svp.grantee_principal_id = sroGrantee.member_principal_id LEFT JOIN sys.server_principals spRole ON sroGrantee.role_principal_id = spRole.principal_id LEFT JOIN sys.objects o ON svp.major_id = o.object_id ORDER BY GrantedObjectType, GrantedObjectName, Permission, State
0 comments:
Post a Comment