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