MS SQL Server: Prüfen Sie, ob ein Benutzer eine gespeicherte Prozedur ausführen kann

Wie können Sie überprüfen, um zu sehen, ob ein Benutzer ausführen kann, eine gespeicherte Prozedur in MS SQL server?

Ich sehen kann, wenn der Benutzer explizit die execute-Berechtigungen eine Verbindung mit der master-Datenbank und ausführen:

databasename..sp_helpprotect 'storedProcedureName', 'username'

jedoch, wenn der Benutzer Mitglied einer Rolle mit Berechtigungen ausführen sp_helprotect nicht mir helfen.

Im Idealfall würde ich mag in der Lage sein zu nennen, so etwas wie

databasename..sp_canexecute 'storedProcedureName', 'username'

was wieder ein bool.

  • Auch, wenn Sie mithilfe von SQL Server 2005 oder höher, und die Berechtigung zugewiesen ist, um das schema oder die Datenbank (AUSZUFÜHREN, kann jetzt sein), sp_helprotect nicht melden. Die gespeicherte Prozedur enthalten ist nur für die Abwärtskompatibilität und Berichte, Berechtigungen basierend auf was wurde in SQL Server 2000.
InformationsquelleAutor Andrew | 2009-01-27
Schreibe einen Kommentar