上記のタスクを実行して、データベースロールに対するストアドプロシージャとビューを作成、更新、削除する機能をユーザーに提供するために、どの権限を付与する必要がありますか。
最も簡単な方法は、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 TABLE
、CREATE FUNCTION
などと同じです。両方が必要な理由は次のとおりです。CREATE PROCEDURE
はプロシージャを作成する機能を提供し、ALTER schema
はプロシージャを配置する場所を提供しますあなたがそれを作成するとき。
CREATE
権限も変更および削除する機能を付与することを指摘しておきます。