CREATE ROLE (Transact-SQL)

Applies to: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) Microsoft Fabric の SQL 分析エンドポイント Microsoft Fabric のウェアハウス

現在のデータベースに新しいデータベース ロールを作成します。

Transact-SQL 構文表記規則

構文

CREATE ROLE role_name [ AUTHORIZATION owner_name ]  

引数

role_name
作成するロールの名前です。

AUTHORIZATION owner_name
新しいロールを所有するデータベース ユーザーまたはロールを指定します。 ユーザーを指定しない場合、ロールは CREATE ROLE を実行するユーザーが所有します。 ロールの所有者、または所有するロールのメンバーは、ロールのメンバーを追加または削除できます。

注釈

ロールはデータベース レベルのセキュリティ保護可能なリソースです。 ロールを作成した後は、GRANT、DENY、REVOKE を使って、ロールのデータベース レベルの権限を構成します。 データベース ロールにメンバーを追加するには、ALTER ROLE (Transact-SQL) を使います。 詳しくは、「データベース レベルのロール」をご覧ください。

データベース ロールは、sys.database_role_members および sys.database_principals カタログ ビューで確認できます。

権限システムの設計の詳細については、「 データベース エンジンの権限の概要」を参照してください。

注意事項

SQL Server 2005 からスキーマの動作が変更されました。 その結果、スキーマがデータベース ユーザーと同じであると想定しているコードでは、正しい結果が返されない場合があります。 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 権限、または db_securityadmin 固定データベース ロールのメンバーシップが必要です。 AUTHORIZATION オプションを使用する場合は、次の権限も必要です。

  • ロールの所有権を別のユーザーに割り当てるには、そのユーザーに対する IMPERSONATE 権限が必要です。

  • ロールの所有権を別のロールに割り当てるには、割り当て先のロールのメンバーシップまたはそのロールに対する ALTER 権限が必要です。

  • ロールの所有権をアプリケーション ロールに割り当てるには、アプリケーション ロールに対する ALTER 権限が必要です。

以下のすべての例では、AdventureWorks データベースを使います。

A. データベース ユーザーが所有するデータベース ロールを作成する

次の例では、ユーザー BenMiller が所有するデータベース ロール buyers を作成します。

CREATE ROLE buyers AUTHORIZATION BenMiller;  
GO  

B. 固定データベース ロールが所有するデータベース ロールを作成する

次の例では、固定データベース ロール db_securityadmin が所有するデータベース ロール auditors を作成します。

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)
データベース エンジンの権限の概要