Verifique se o usuário ou a função GRANT EXECUTE TO foi aplicada

1

No Microsoft SQL Server, posso usar

GRANT EXECUTE TO <principal>

para conceder permissão de execução a algum usuário ou função. Estou interessado em detecção:

Como posso igualmente verificar se o comando GRANT EXECUTE já estava aplicado a determinado usuário / função? (por mim ou por outro administrador)

Exemplo:

Se eu usar GRANT EXECUTE TO user01 e retornar depois de algumas semanas: existe uma maneira simples de verificar se eu (ou outra pessoa) já usou GRANT EXECUTE TO user01 ?

    
por miroxlav 02.10.2015 / 14:45

1 resposta

1

Eu encontrei onde está armazenado, então até alguém postar uma resposta mais simples, eu vou manter este snippet de código à mão para o caso de verificação:

 
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';

Resultado 0 significa resposta negativa, 1 significa positivo.

    
por 02.10.2015 / 17:55