Проверьте, был ли применен GRANT EXECUTE TO для пользователя или роли.

Проверьте, был ли применен GRANT EXECUTE TO для пользователя или роли.

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

Связанный контент