В 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
означает положительный.