Suche nach gespeicherten Prozeduren mit Ausführungsberechtigung

7

Ich verwende SQL Server 2008 R2. Ich muss alle gespeicherten Prozeduren auflisten, die ein Datenbankbenutzer (MYUSER) Ausführungsberechtigung hat.

Außerdem muss ich auflisten, welche gespeicherten Prozeduren der Benutzer NICHT EXECUTE-Berechtigung hat - aber er kann das Skript der gespeicherten Prozedur lesen

Gibt es zu diesen Zwecken eine SQL-Anweisung oder eine Hilfsfunktion?

REFERENZ:

  1. Erteilen der Ausführungsberechtigung für alle gespeicherten Prozeduren in einer bestimmten Datenbank
Lijo 31.10.2012, 06:22
quelle

4 Antworten

10

Verwenden Sie HAS_PERMS_BY_NAME :

%Vor%     
Remus Rusanu 31.10.2012, 07:54
quelle
5

HAS_PERMS_BY_NAME , wie im Zusammenhang mit dem Skript in der ersten Antwort verwendet, liefert nur dann das gewünschte Ergebnis, wenn Sie seit der Funktion

als "MYUSER" verbunden sind
  

"Prüft die effektive Berechtigung des aktuellen Benutzers"

    
jhenrichs 01.11.2012 22:44
quelle
5

Um die Berechtigung für einen anderen Benutzer zu überprüfen, verwenden Sie Folgendes:

%Vor%

Funktioniert für meinen SQL Server 2012.

    
knb 07.08.2014 08:56
quelle
4

Die Antwort von knb funktioniert wegen fehlender Rechte nicht. (eine Lösung für einen anderen Benutzer als die aktuelle)

  

Kann nicht als Datenbank-Principal ausgeführt werden, da der Prinzipal "mein Benutzer"   existiert nicht, diese Art von Principal kann nicht imitiert werden, oder du   keine Erlaubnis haben.

Dies Antwort zeigt, wie die Liste der gespeicherten Prozeduren abgerufen wird, für die einem bestimmten Datenbankbenutzer ('mein Benutzer') die Berechtigung EXECUTE explizit erteilt wurde:

%Vor%

Ich habe es wie folgt geändert, um die Liste zu erhalten, die ich brauche:

%Vor%

Getestet auf Microsoft SQL Server 2008 R2

    
ofthelit 07.07.2015 10:52
quelle