次の方法で共有


ロールの作成 (Transact-SQL)

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Microsoft Fabric の SQL 分析エンドポイントMicrosoft Fabric WarehouseMicrosoft Fabric SQL Database

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

Transact-SQL 構文表記規則

構文

CREATE ROLE role_name [ AUTHORIZATION owner_name ]  

引数

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

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

注釈

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

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

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

スキーマは、データベース ユーザーと同等ではありません。 システム カタログ ビューを使用して、データベース ユーザーとスキーマの違いを特定します。

アクセス許可

データベースの CREATE ROLE 権限、または db_securityadmin 固定データベース ロールのメンバーシップが必要です。 AUTHORIZATION オプションを使用する場合は、次の権限も必要です。

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

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

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

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

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

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

CREATE ROLE buyers AUTHORIZATION BenMiller;  
GO  

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

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

CREATE ROLE auditors AUTHORIZATION db_securityadmin;  
GO  

参照

プリンシパル (データベース エンジン)
オルターロール (Transact-SQL)
ドロップロール (Transact-SQL)
イベントデータ (Transact-SQL)
sp_addrolemember (Transact-SQL)
sys.database_role_members (Transact-SQL)
sys.database_principals (Transact-SQL)
データベース エンジンの権限の概要