CREATE ROLE (Transact-SQL)CREATE ROLE (Transact-SQL)

適用対象:Applies to: はいSQL ServerSQL Server (サポートされているすべてのバージョン) yesSQL ServerSQL Server (all supported versions) はいAzure SQL データベースAzure SQL DatabaseYesAzure SQL データベースAzure SQL Database はいAzure SQL Managed InstanceAzure SQL Managed InstanceYesAzure SQL Managed InstanceAzure SQL Managed Instance はいAzure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics はいParallel Data WarehouseParallel Data WarehouseyesParallel Data WarehouseParallel Data Warehouse適用対象:Applies to: はいSQL ServerSQL Server (サポートされているすべてのバージョン) yesSQL ServerSQL Server (all supported versions) はいAzure SQL データベースAzure SQL DatabaseYesAzure SQL データベースAzure SQL Database はいAzure SQL Managed InstanceAzure SQL Managed InstanceYesAzure SQL Managed InstanceAzure SQL Managed Instance はいAzure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics はいParallel Data WarehouseParallel Data WarehouseyesParallel Data WarehouseParallel Data Warehouse

現在のデータベースに新しいデータベース ロールを作成します。Creates a new database role in the current database.

トピック リンク アイコン Transact-SQL 構文表記規則Topic link icon Transact-SQL Syntax Conventions

構文Syntax

CREATE ROLE role_name [ AUTHORIZATION owner_name ]  

注意

SQL Server 2014 以前の Transact-SQL 構文を確認するには、以前のバージョンのドキュメントを参照してください。To view Transact-SQL syntax for SQL Server 2014 and earlier, see Previous versions documentation.

引数Arguments

role_namerole_name
作成するロールの名前です。Is the name of the role to be created.

AUTHORIZATION owner_nameAUTHORIZATION owner_name
新しいロールを所有するデータベース ユーザーまたはロールを指定します。Is the database user or role that is to own the new role. ユーザーを指定しない場合、ロールは CREATE ROLE を実行するユーザーが所有します。If no user is specified, the role will be owned by the user that executes CREATE ROLE. ロールの所有者、または所有するロールのメンバーは、ロールのメンバーを追加または削除できます。The owner of the role, or any member of an owning role can add or remove members of the role.

注釈Remarks

ロールはデータベース レベルのセキュリティ保護可能なリソースです。Roles are database-level securables. ロールを作成した後は、GRANT、DENY、REVOKE を使って、ロールのデータベース レベルの権限を構成します。After you create a role, configure the database-level permissions of the role by using GRANT, DENY, and REVOKE. データベース ロールにメンバーを追加するには、ALTER ROLE (Transact-SQL) を使います。To add members to a database role, use ALTER ROLE (Transact-SQL). 詳しくは、「データベース レベルのロール」をご覧ください。For more information, see Database-Level Roles.

データベース ロールは、sys.database_role_members および sys.database_principals カタログ ビューで確認できます。Database roles are visible in the sys.database_role_members and sys.database_principals catalog views.

権限システムの設計の詳細については、「 データベース エンジンの権限の概要」を参照してください。For information about designing a permissions system, see Getting Started with Database Engine Permissions.

注意事項

SQL Server 2005 からスキーマの動作が変更されました。Beginning with SQL Server 2005, the behavior of schemas changed. その結果、スキーマがデータベース ユーザーと同じであると想定しているコードでは、正しい結果が返されない場合があります。As a result, code that assumes that schemas are equivalent to database users may no longer return correct results. 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 などの古いカタログ ビューを使用しないでください。Old catalog views, including sysobjects, should not be used in a database in which any of the following DDL statements have ever been used: 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. そのようなデータベースでは、代わりに新しいカタログ ビューを使用してください。In such databases you must instead use the new catalog views. 新しいカタログ ビューでは、SQL Server 2005 で導入されたプリンシパルとスキーマの分離が考慮されます。The new catalog views take into account the separation of principals and schemas that was introduced in SQL Server 2005. カタログ ビューの詳細については、「カタログ ビュー (Transact-SQL)」を参照してください。For more information about catalog views, see Catalog Views (Transact-SQL).

アクセス許可Permissions

データベースの CREATE ROLE 権限、または db_securityadmin 固定データベース ロールのメンバーシップが必要です。Requires CREATE ROLE permission on the database or membership in the db_securityadmin fixed database role. AUTHORIZATION オプションを使用する場合は、次の権限も必要です。When you use the AUTHORIZATION option, the following permissions are also required:

  • ロールの所有権を別のユーザーに割り当てるには、そのユーザーに対する IMPERSONATE 権限が必要です。To assign ownership of a role to another user, requires IMPERSONATE permission on that user.

  • ロールの所有権を別のロールに割り当てるには、割り当て先のロールのメンバーシップまたはそのロールに対する ALTER 権限が必要です。To assign ownership of a role to another role, requires membership in the recipient role or ALTER permission on that role.

  • ロールの所有権をアプリケーション ロールに割り当てるには、アプリケーション ロールに対する ALTER 権限が必要です。To assign ownership of a role to an application role, requires ALTER permission on the application role.

Examples

以下のすべての例では、AdventureWorks データベースを使います。The following examples all use the AdventureWorks database.

A.A. データベース ユーザーが所有するデータベース ロールを作成するCreating a database role that is owned by a database user

次の例では、ユーザー BenMiller が所有するデータベース ロール buyers を作成します。The following example creates the database role buyers that is owned by user BenMiller.

CREATE ROLE buyers AUTHORIZATION BenMiller;  
GO  

B.B. 固定データベース ロールが所有するデータベース ロールを作成するCreating a database role that is owned by a fixed database role

次の例では、固定データベース ロール db_securityadmin が所有するデータベース ロール auditors を作成します。The following example creates the database role auditors that is owned the db_securityadmin fixed database role.

CREATE ROLE auditors AUTHORIZATION db_securityadmin;  
GO  

参照See Also

プリンシパル (データベース エンジン) Principals (Database Engine)
ALTER ROLE (Transact-SQL) ALTER ROLE (Transact-SQL)
DROP ROLE (Transact-SQL) DROP ROLE (Transact-SQL)
EVENTDATA (Transact-SQL) EVENTDATA (Transact-SQL)
sp_addrolemember (Transact-SQL) sp_addrolemember (Transact-SQL)
sys.database_role_members (Transact-SQL) sys.database_role_members (Transact-SQL)
sys.database_principals (Transact-SQL) sys.database_principals (Transact-SQL)
データベース エンジンの権限の概要Getting Started with Database Engine Permissions