プライマリ・コンテンツに移動
Oracle® Database SQL言語リファレンス
11gリリース2 (11.2)
B56299-08
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

CREATE ROLE

用途

CREATE ROLE文を使用すると、ロールを作成できます。ロールは、ユーザーまたは他のロールに付与できる権限の集合です。ロールを使用して、データベース権限を管理できます。ロールに権限を追加し、そのロールをユーザーに付与することができます。その後、ユーザーはロールを有効にして、そのロールによって付与された権限を行使することができます。

ロールには、そのロールに付与されたすべての権限、およびそのロールに付与された他のロールのすべての権限が含まれています。新しく作成されたロールには、ロールや権限は付与されていません。GRANT文を使用して、ロールに様々な権限を追加します。

NOT IDENTIFIEDIDENTIFIED EXTERNALLYまたはBY passwordロールを作成した場合、そのロールはADMIN OPTION付きで付与されます。ただし、ロールIDENTIFIED GLOBALLYを作成した場合、ロールは付与されません。グローバル・ロールは、ユーザーまたはロールに対して直接付与できません。グローバル・ロールを付与する場合は、エンタープライズ・ロールを介して行う必要があります。


関連項目:

  • ロールの付与については、「GRANT」を参照してください。

  • ロールを使用可能にする場合は、「ALTER USER」を参照してください。

  • データベースのロールの変更または削除については、「ALTER ROLE」および「DROP ROLE」を参照してください。

  • 現行のセッションに対するロールの使用可能化および使用禁止化については、「SET ROLE」を参照してください。

  • ロールの概要は、『Oracle Databaseセキュリティ・ガイド』を参照してください。

  • エンタープライズ・ロールの詳細は、『Oracle Databaseエンタープライズ・ユーザー・セキュリティ管理者ガイド』を参照してください。


前提条件

CREATE ROLEシステム権限が必要です。

構文

create_role::=

create_role.gifの説明が続きます。
図「create_role.gif」の説明

セマンティクス

role

作成するロールの名前を指定します。データベース・キャラクタ・セットにマルチバイト文字がサポートされている場合でも、ロールにはシングルバイト文字を1つ以上使用することをお薦めします。ロールの名前の最大長は30バイトです。各ユーザーに対し、一度に使用可能にできるユーザー定義のロールの最大数は148です。

配布メディアで提供されているSQLスクリプトには、いくつかのロールが定義されています。


関連項目:

事前定義済のロールのリストについては、「GRANT」を、ユーザーに対するロールの使用可能化および使用禁止化については、「SET ROLE」を参照してください。

NOT IDENTIFIED句

NOT IDENTIFIEDを指定すると、指定するロールがデータベースによって認可され、パスワードを入力しなくてもこのロールを使用可能にできます。

IDENTIFIED句

IDENTIFIED句を使用すると、SET ROLE文によってロールを使用可能にする前に、指定したメソッドによってユーザーが認可される必要があります。

BY password BY password句を使用すると、ローカル・ロールを作成できます。また、ロールを使用可能にするときに、データベースに対するパスワードの指定を要求できます。データベース・キャラクタ・セットにマルチバイト文字が含まれている場合でも、データベース・キャラクタ・セットのシングルバイト文字のみでパスワードを指定できます。

USING package USING package句を使用すると、保護アプリケーション・ロールを作成できます。保護アプリケーション・ロールとは、認可済パッケージを使用するアプリケーションによってのみ使用可能になるロールです。schemaを指定しない場合、パッケージは自分のスキーマ内にあるとみなされます。


関連項目:

保護アプリケーション・ロールの作成については、『Oracle Databaseセキュリティ・ガイド』を参照してください。

EXTERNALLY EXTERNALLYを指定すると、外部ロールを作成できます。外部ユーザーは、ロールを使用可能にする前に、オペレーティング・システムやサード・パーティ・サービスなどの外部サービスによって認可されている必要があります。

オペレーティング・システムによっては、ユーザーがオペレーティング・システムに対してパスワードを指定しないと、ロールが使用可能にできない場合もあります。

GLOBALLY GLOBALLYを指定すると、グローバル・ロールを作成できます。グローバル・ユーザーは、ログイン時にロールの使用が可能になる前に、エンタープライズ・ディレクトリ・サービスによってロールの使用を認可されている必要があります。

NOT IDENTIFIED句およびIDENTIFIED句を両方とも省略した場合、ロールにはNOT IDENTIFIEDがデフォルト値として使用されます。

ロールの作成例: 次の文は、ロールdw_managerを作成します。

CREATE ROLE dw_manager;

この後にdw_managerロールを付与されるユーザーは、このロールに付与されているすべての権限を継承します。

次の例のように、パスワードの指定によってロールにセキュリティのレイヤーを追加できます。

CREATE ROLE dw_manager
   IDENTIFIED BY warehouse; 

この後、dw_managerロールを付与されたユーザーは、パスワードwarehouseを指定して、SET ROLE文でロールを使用可能にする必要があります。

次の文は、グローバル・ロールwarehouse_userを作成します。

CREATE ROLE warehouse_user IDENTIFIED GLOBALLY;

次の文は、同じロールを外部ロールとして作成します。

CREATE ROLE warehouse_user IDENTIFIED EXTERNALLY;