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肯定的な答えを意味します。

関連情報