Überprüfen Sie, ob der Benutzer oder die Rolle GRANT EXECUTE TO angewendet wurde

Überprüfen Sie, ob der Benutzer oder die Rolle GRANT EXECUTE TO angewendet wurde

In Microsoft SQL Server kann ich

GRANT EXECUTE TO <principal>

um einem Benutzer oder einer Rolle Ausführungsberechtigung zu erteilen. Mich interessiert die Erkennung:

Wie kann ich ebenso einfach prüfen, ob der GRANT EXECUTEBefehlbereitsauf den angegebenen Benutzer/die angegebene Rolle angewendet?(von mir oder einem anderen Administrator)

Beispiel:

Wenn ich es verwende GRANT EXECUTE TO user01und nach ein paar Wochen zurückgebe: Gibt es eine einfache Möglichkeit zu überprüfen, ob ich (oder jemand anderes) es bereits verwendet habe GRANT EXECUTE TO user01?

Antwort1

Ich habe herausgefunden, wo es gespeichert ist. Bis jemand eine einfachere Antwort postet, behalte ich diesen Codeausschnitt zur Kontrolle bereit:

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

Ergebnis 0bedeutet negative Antwort, 1bedeutet positiv.

verwandte Informationen