簡體   English   中英

如何在MS SQL Server 2008 R2上列出數據庫級別的權限

[英]how to list permission on database level on MS SQL Server 2008 R2

我搜索一個tsql腳本以列出在數據庫級別授予的所有權限,如下所示:

use SomeDatabase;
GRANT SELECT TO NEWUSER1

您可以通過以下方式列出它:

SETUSER 'NEWUSER1'
SELECT * FROM fn_my_permissions (NULL, 'DATABASE');

但我sys.database_permissions or sys.server_permissions列出這種權限的任何系統視圖或功能(例如sys.database_permissions or sys.server_permissions )。

有什么建議么?

我不知道這是您所需要的。 但是您可以嘗試以下操作:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM