web-dev-qa-db-ja.com

ストアドプロシージャとビューを作成、更新、削除するロールを作成するにはどうすればよいですか

上記のタスクを実行して、データベースロールに対するストアドプロシージャとビューを作成、更新、削除する機能をユーザーに提供するために、どの権限を付与する必要がありますか。

3
jason

最も簡単な方法は、db_ddladminロールにユーザーを追加することです。

-- Older method
EXEC sp_addrolemember 'db_ddladmin','username';
-- New method
ALTER ROLE db_ddladmin ADD MEMBER username;

これにより、ユーザーはスキーマ内のオブジェクトを作成、変更、削除することができます。残念ながら、これにはおそらく変更してほしくないオブジェクトが含まれます(たとえば、テーブル)。

より正確な方法は、CREATE権限を使用することです。ただし、それらを使用するための小さなトリックがあります。オブジェクトを作成/変更できるスキーマでALTERを付与する必要もあります。したがって、dboスキーマにプロシージャとビューを作成する機能を付与するには、次のようにします。

GRANT ALTER ON SCHEMA::[dbo] TO [UserName];
GRANT CREATE PROCEDURE TO [UserName];
GRANT CREATE VIEW TO [UserName];

CREATE TABLECREATE FUNCTIONなどと同じです。両方が必要な理由は次のとおりです。CREATE PROCEDUREはプロシージャを作成する機能を提供し、ALTER schemaはプロシージャを配置する場所を提供しますあなたがそれを作成するとき。

CREATE権限も変更および削除する機能を付与することを指摘しておきます。

2
Kenneth Fisher