Compruebe si se aplicó GRANT EXECUTE TO usuario o rol

Compruebe si se aplicó GRANT EXECUTE TO usuario o rol

En Microsoft SQL Server, puedo usar

GRANT EXECUTE TO <principal>

para otorgar permiso de ejecución a algún usuario o rol. Estoy interesado en la detección:

¿Cómo puedo comprobar con la misma sencillez si ese GRANT EXECUTEcomando fueya¿Se aplica a un usuario/rol determinado?(por mí o por algún otro administrador)

Ejemplo:

Si lo uso GRANT EXECUTE TO user01y vuelvo después de unas semanas: ¿hay alguna forma sencilla de comprobar si yo (o alguien más) ya lo usé GRANT EXECUTE TO user01?

Respuesta1

Encontré dónde está almacenado, así que hasta que alguien publique una respuesta más simple, tendré este fragmento de código a mano en caso de verificarlo:

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 respuesta negativa, 1significa positiva.

información relacionada