I search for a tsql script to list all permissions granted on database level like this:
use SomeDatabase;
GRANT SELECT TO NEWUSER1
You can list it by:
SETUSER 'NEWUSER1'
SELECT * FROM fn_my_permissions (NULL, 'DATABASE');
but I can not find any system view or function (like sys.database_permissions or sys.server_permissions
) listing this kind of permission.
Any suggestions?
I don't know if is this what you need. But you can try this:
use yourdatebase;
select sys.schemas.name 'Schema'
, sys.objects.name Object
, sys.database_principals.name username
, sys.database_permissions.type permissions_type
, sys.database_permissions.permission_name
, sys.database_permissions.state permission_state
, sys.database_permissions.state_desc
, state_desc + ' ' + permission_name + ' on ['+ sys.schemas.name + '].[' + sys.objects.name + '] to [' + sys.database_principals.name + ']' COLLATE LATIN1_General_CI_AS
from sys.database_permissions join sys.objects on sys.database_permissions.major_id = sys.objects.object_id join sys.schemas on sys.objects.schema_id = sys.schemas.schema_id join sys.database_principals on sys.database_permissions.grantee_principal_id = sys.database_principals.principal_id order by 1, 2, 3, 5
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.