Проверьте, выполняется ли ПРЕДОСТАВЛЕНИЕ пользователю, или роль была применена

В Microsoft SQL Server я могу использовать

GRANT EXECUTE TO <principal>

для предоставления выполняют разрешение некоторому пользователю или роли. Я интересуюсь обнаружением:

Как я могу одинаково просто проверить ли это GRANT EXECUTE команда была уже применена к данному пользователю/роли? (мной или некоторым другим администратором)

Пример:

Если я использую GRANT EXECUTE TO user01 и возвратитесь назад после нескольких недель: есть ли простой способ проверить ли я (или кто-то еще) уже используемый GRANT EXECUTE TO user01?

2
задан 3 October 2015 в 12:44
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 означает положительный.

2
ответ дан 3 December 2019 в 11:35

Теги

Похожие вопросы