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 EXECUTE
comando fueya¿Se aplica a un usuario/rol determinado?(por mí o por algún otro administrador)
Ejemplo:
Si lo uso GRANT EXECUTE TO user01
y 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 0
significa respuesta negativa, 1
significa positiva.