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

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

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 na detecção:

Como posso simplesmente verificar se esse GRANT EXECUTEcomando foiaplicado a determinado usuário/função?(por mim ou por algum outro administrador)

Exemplo:

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

Responder1

Descobri onde ele está armazenado, então, até que alguém poste uma resposta mais simples, manterei este trecho de código em mãos 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 0significa resposta negativa, 1significa positiva.

informação relacionada