Sql-Server

檢查是否應用了 GRANT EXECUTE T O 使用者或角色

  • October 3, 2015

在 Microsoft SQL Server 中,我可以使用

GRANT EXECUTE TO <principal>

授予某些使用者或角色執行權限。我對檢測感興趣:

我怎樣才能同樣簡單地檢查該GRANT EXECUTE命令是否應用於給定的使用者/角色?(由我或其他管理員)

例子:

如果我使用GRANT EXECUTE TO user01並在幾週後返回:有沒有一種簡單的方法可以檢查我(或其他人)是否已經使用過GRANT EXECUTE TO user01

我找到了它的儲存位置,所以在有人發布更簡單的答案之前,我會保留這個程式碼片段以備檢查:

DECLARE @username nvarchar(128) = 'user01';

SELECT COUNT(*) FROM sys.database_permissions 
   WHERE grantee_principal_id = (SELECT UID FROM sysusers WHERE name = @username) 
       AND class_desc = 'DATABASE'
       AND type='EX' 
       AND permission_name='EXECUTE' 
       AND state = 'G';

結果0意味著否定答案,1意味著肯定。

引用自:https://serverfault.com/questions/726269