ロール
ロール とは役割を意味します。オブジェクト権限やシステム権限を個別のユーザに与えるのではなく、ロールに与えることができます。 ロールをユーザに与えることによって、ユーザをグループごとに管理できます。 ロールは複数のユーザに与えることができます。また、ユーザは複数のロールを与えられることがあります。
ロールとは
ロールとは、ユーザの役割を示すデータベース・オブジェクトである。システム権限やオブジェクト権限を直接ユーザに付与すると権限管理が煩雑になるため、ロールを介して権限を付与できる。
たとえば、権限をユーザに直接付与したときの関連は次のようになる。
権限をロールに付与して、そのロールをユーザに付与すると次のようになる。
ロールにロールを付与すると次のようになる。
ロールは非スキーマオブジェクトである。
定義済みのロール
Oracleデータベースには、次に示す事前定義済みのロールがある。
- CONNECT
- エンドユーザー向けのロールです。CREATE SESSIONやCREATE TABLE、CREATE VIEWなどのシステム権限が与えられています。
- RESOURCE
- 開発者向けのロールです。CREATE TRIGGERやCREATE PROCEDUREなどのシステム権限が与えられています。CONNECTロールに含まれているシステム権限は含まれていません。
- DBA
- データベース管理者向けのロールです。すべてのシステム権限がWITH ADMIN OPTION付きで与えられています。
これらの定義済みのロールは互換性のために残されているだけで、使用は推奨されていません。
データディクショナリビュー
ロールに関するデータ・ディクショナリ・ビューには、次のものがある。
- DBA_ROLE_PRIVS
- Oracleデータベース内のすべてのユーザーおよびロールに付与されたロール
- DBA_ROLES
- データベース内のすべてのロール
- ROLE_ROLE_PRIVS
- 別のロールに付与されたロール
- USER_ROLE_PRIVS
- 現在のユーザーに付与されたロール
ALL_ROLES や USER_ROLES という名前のデータ・ディクショナリ・ビューは存在しない。
SQL
ロールに関するSQL文には、次のものがある。
- CREATE ROLE
- ロールを作成する。
- ALTER ROLE
- ロールを変更する。
- DROP ROLE
- ロールを削除する。
- GRANT
- ロールに権限を付与したり、ユーザにロールを付与する。
- REVOKE
- ロールから権限を剥奪したり、ユーザからロールを剥奪する。
システム権限
ロールに関するシステム権限には、次のものがある。
- CREATE ROLE
- 自分のスキーマにロールを作成できる。
- ALTER ANY ROLE
- 任意のスキーマにあるロールを変更できる。
- DROP ANY ROLE
- 任意のスキーマにあるロールを削除できる。
- GRANT ANY ROLE
- 任意のロールを付与できる。