Назад | Перейти на главную страницу

Проверьте, применен ли GRANT EXECUTE TO к пользователю или роли

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