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