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
はポジティブを意味します。