Sql-Server
檢查是否應用了 GRANT EXECUTE T O 使用者或角色
在 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
意味著肯定。