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

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

在 Microsoft SQL Server 中,我可以使用

GRANT EXECUTE TO <principal>

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

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

例子:

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

答案1

我找到了它的儲存位置,因此在有人發布更簡單的答案之前,我將保留此程式碼片段以供檢查:

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表示肯定。

相關內容