SQL Server: Welche Rolle gewährt die Berechtigung zum Ausführen aller gespeicherten Prozeduren?

9

Welche Mitgliedschaft in einer Datenbankrolle gewährt die Berechtigung zum Ausführen aller vorhandenen gespeicherten Prozeduren in SQL Server 2012?

Ich habe versucht, jedem einen Benutzer hinzuzufügen, und kann eine gespeicherte Prozedur immer noch nicht ausführen. Ich möchte nicht EXECUTEfür jede gespeicherte Prozedur separat gewähren , ich möchte den Benutzer einer Rolle hinzufügen und er kann eine von ihnen ausführen.

Hikari
quelle
3
Wenn sich alle Ihre gespeicherten Prozesse im selben Schema befinden, können Sie die Ausführung für das Schema gewähren. GRANT EXECUTE ON SCHEMA :: [dbo] TO [login]. Davon abgesehen glaube ich, dass db_owner aber dies alle Arten von Zugriff ermöglichen würde
Bob Klimes

Antworten:

14

Wenn Sie andere Schemas als das Standardschema verwenden dbo, erstellen Sie eine Datenbankrolle pro Schema und gewähren Sie EXECUTEder Rolle das Schema.

zB Für das Standardschema dbo:

CREATE ROLE role_exec_dbo
GO
GRANT EXECUTE ON SCHEMA::dbo to role_exec_dbo
GO

Für ein neues Schema:

CREATE SCHEMA mySchema
GO
CREATE ROLE role_exec_mySchema
GO
GRANT EXECUTE ON SCHEMA::mySchema to role_exec_mySchema
GO
Richard Armstrong-Finnerty
quelle
1
Dann exec sp_addrolemember N'role_exec_mySchema', N'{theDBUserName}'. :-)
ΩmegaMan
5

Standardmäßig keine.

Erstellen Sie eine neue Rolle und gewähren Sie ihr die Ausführung. Dies sollte auch gespeicherte Prozesse abdecken, die in Zukunft erstellt wurden.

Kevin3NF
quelle