CREATE ROLE (Transact-SQL)
現在のデータベースに新しいデータベース ロールを作成します。
構文
CREATE ROLE role_name [ AUTHORIZATION owner_name ]
引数
- role_name
作成するロールの名前を指定します。
- AUTHORIZATION owner_name
新しいロールを所有するデータベース ユーザーまたはロールを指定します。ユーザーを指定しない場合、ロールは CREATE ROLE を実行するユーザーが所有します。
解説
ロールはデータベース レベルのセキュリティ保護可能なリソースです。ロールを作成した後は、GRANT、DENY、および REVOKE を使って、ロールのデータベース レベルの権限を構成します。データベース ロールにメンバを追加するには、sp_addrolemember ストアド プロシージャを使用します。詳細については、「データベース レベルのロール」を参照してください。
データベース ロールは、sys.database_role_members および sys.database_principals カタログ ビューで確認できます。
注意 : |
---|
SQL Server 2005 でのスキーマの動作は、以前のバージョンの SQL Server から変更されました。コードで、スキーマがデータベース ユーザーと同じであることが前提となっている場合、正しい結果が返されない場合があります。CREATE SCHEMA、ALTER SCHEMA、DROP SCHEMA、CREATE USER、ALTER USER、DROP USER、CREATE ROLE、ALTER ROLE、DROP ROLE、CREATE APPROLE、ALTER APPROLE、DROP APPROLE、ALTER AUTHORIZATION のいずれかの DDL ステートメントが使用されたことのあるデータベースでは、sysobjects を含む以前のカタログ ビューを使用しないでください。このようなデータベースでは、新しいカタログ ビューを使用する必要があります。新しいカタログ ビューでは、SQL Server 2005 で導入されたプリンシパルとスキーマの分離が考慮されます。カタログ ビューの詳細については、「カタログ ビュー (Transact-SQL)」を参照してください。 |
権限
データベースに対する CREATE ROLE 権限が必要です。AUTHORIZATION オプションを使用する場合は、次の権限も必要です。
- ロールの所有権を別のユーザーに割り当てるには、そのユーザーに対する IMPERSONATE 権限が必要です。
- ロールの所有権を別のロールに割り当てるには、割り当て先のロールのメンバシップまたはそのロールに対する ALTER 権限が必要です。
- ロールの所有権をアプリケーション ロールに割り当てるには、アプリケーション ロールに対する ALTER 権限が必要です。
例
A. データベース ユーザーが所有するデータベース ロールを作成する
次の例では、ユーザー BenMiller
が所有するデータベース ロール buyers
を作成します。
USE AdventureWorks;
CREATE ROLE buyers AUTHORIZATION BenMiller;
GO
B. 固定データベース ロールが所有するデータベース ロールを作成する
次の例では、固定データベース ロール db_securityadmin
が所有するデータベース ロール auditors
を作成します。
USE AdventureWorks;
CREATE ROLE auditors AUTHORIZATION db_securityadmin;
GO
参照
関連項目
ALTER ROLE (Transact-SQL)
DROP ROLE (Transact-SQL)
EVENTDATA (Transact-SQL)
sp_addrolemember (Transact-SQL)
sys.database_role_members (Transact-SQL)
sys.database_principals (Transact-SQL)