Manchmal muss ein Benutzer die Berechtigung für das Ausführen (execute) der Store Procedure bzw. „gespeicherten Prozedur“ erhalten.
Leider bietet MS SQL-Server keine vorgefertigte Datenbankrolle, die nur das Recht „Ausführen“ enthält. Aus diesem Grund werden wir eine neue Datenbankrolle „proc_executor“ erstellen und die Berechtigung zum Ausführen erteilen.
Execute Stored Procedure – Berechtigung zum Ausführen erteilen
Datenbankrolle erstellen
SSMS öffnen.
Im Studio die Datenbank auswählen, die die neue Datenbankrolle für die Ausführung der Stored Procedures erhalten soll.
Mit der rechten Maustaste auf diese DB klicken und „Neue Abfrage“ öffnen.
Folgende Zeilen in das geöffnete Abfrage-Fenster eintragen.
CREATE ROLE proc_executor GRANT EXECUTE TO proc_executor
Und im Menü auf den Button „Ausführen“ klicken.
Datenbankrolle dem Benutzer zuweisen
Nachdem nun die Datenbankrolle erstellt ist, müssen wir dem Benutzer, der das Recht zum Ausführen der Stored Procedures erhalten soll, die Mitgliedschaft in dieser Rolle konfigurieren.
Dazu im Objekt-Explorer, unter Sicherheit > Anmeldungen den gewünschten Benutzer mit der rechten Maustaste anklicken und Eigenschaften aus dem Kontextmenü öffnen.
Im Fenster „Anmeldungseigenschaften“ im Bereich „Seite auswählen“ den Punkt „Benutzerzuordnung“ auswählen.
Oben rechts, im Bereich „Benutzer, die dieser Anmeldung zugeordnet sind“ die Datenbank aktivieren (Häkchen setzen), auf die der Benutzer das Recht zum Ausführen erhalten soll.
Unten rechts, im Bereich „Mitgliedschaft in Datenbankrolle für: <DB>“ die zuvor erstellte Datenbankrolle „proc_executor“ aktivieren.
Nun kann der ausgewählte Benutzer stored procedures in der ausgewählten DB ausführen.
Super Beitrag, hat mir sehr geholfen.