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 EXECUTE
comando foijáaplicado a determinado usuário/função?(por mim ou por algum outro administrador)
Exemplo:
Se eu usar GRANT EXECUTE TO user01
e 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 0
significa resposta negativa, 1
significa positiva.