web-dev-qa-db-ja.com

SQL Server:すべてのストアドプロシージャを実行する権限を付与するロールはどれですか?

SQL Server 2012で既存のすべてのストアドプロシージャを実行する権限を付与するデータベースロールメンバーシップはどれですか?

それぞれにユーザーを追加しようとしましたが、それでもストアドプロシージャを実行できません。ストアドプロシージャごとにEXECUTEを個別に付与したくありません。ユーザーをロールに追加すると、ユーザーはそれらを実行できます。

8
Hikari

デフォルトのdboスキーマ以外のスキーマを使用している場合は、スキーマごとにデータベースロールを作成し、スキーマのEXECUTEをロールに付与します。

例えばデフォルトのdboスキーマの場合:

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

新しいスキーマの場合:

CREATE SCHEMA mySchema
GO
CREATE ROLE role_exec_mySchema
GO
GRANT EXECUTE ON SCHEMA::mySchema to role_exec_mySchema
GO

デフォルトではありません。

新しいロールを作成し、それに実行を許可します。これは、将来作成されるストアドプロシージャもカバーする必要があります。

5
Kevin3NF