SQL Server 2012で既存のすべてのストアドプロシージャを実行する権限を付与するデータベースロールメンバーシップはどれですか?
それぞれにユーザーを追加しようとしましたが、それでもストアドプロシージャを実行できません。ストアドプロシージャごとにEXECUTE
を個別に付与したくありません。ユーザーをロールに追加すると、ユーザーはそれらを実行できます。
デフォルトの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
デフォルトではありません。
新しいロールを作成し、それに実行を許可します。これは、将来作成されるストアドプロシージャもカバーする必要があります。