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 EXECUTE
Befehlbereitsauf den angegebenen Benutzer/die angegebene Rolle angewendet?(von mir oder einem anderen Administrator)
Beispiel:
Wenn ich es verwende GRANT EXECUTE TO user01
und 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 0
bedeutet negative Antwort, 1
bedeutet positiv.