HOME > CREATE ROLE編
ROLE(ロール)
ロールとは権限を一つのオブジェクトにまとめたものです。
権限にはかなりの種類があり、それを一つ一つユーザに割り当てるのは大変です。
そうした場合にロールを使用するととても容易に権限を管理することができます。
権限については、権限編をご覧ください。
ロールの作成
ロールの作成には、CREATE ROLE句を使用します。
- CREATE ROLE構文
-
CREATE ROLE ロール名 [NOT IDENTIFIED | IDENTIFIED BY パスワード];
パラメータ | 説明 |
---|---|
NOT IDENTIFIED | パスワードを設定しない場合 |
IDENTIFIED BY | ロールを使用可能にする時のパスワードを設定する |
ロールを作成するためには、「CREATE ROLE」システム権限が必要です。
ロールに権限や他のロールを与える
作成したロールに権限を与える事で、機能するロールになります。
- 構文(ロールに権限を与える)
- GRANT システム権限 TO ロール名; ※権限を付与したロールを他のロールに付与する事もできます。 GRANT ロール名 TO ロール名;
【参考】ロールではなく、ユーザーに直接権限を与えることもできます。
- 構文(ユーザにロールを付与する)
-
GRANT ロール名 TO [ユーザ名 | PUBLIC] [WITH ADMIN OPTION];
パラメータ | 説明 |
---|---|
ユーザ名 | PUBLIC | ユーザ名:指定したユーザに対してロールを付与する PUBLIC:全てのユーザにロールを付与する |
WITH ADMIN OPTION | 他のユーザへのロールの付与・取消の権限も与える場合に指定する |
- ROLEの作成から付与までの例文
- --(例)ロールを作成してCREATE SESSION権限と -- SELECT ANY TABLE権限をセットして、ユーザ「taro」に付与する。 CREATE ROLE select_role; GRANT CREATE SESSION, SELECT ANY TABLE TO select_role; GRANT select_role TO taro;
ロールから権限や付与したロールを剥奪する
ロールからロール/権限を剥奪したい時は、REVOKE句を使用します。
- 構文(ロールから権限を剥奪する)
-
REVOKE {システム権限 | ロール名} [, ...] FROM ロール名;
- ROLEから権限を剥奪する例文
- --(例)ロール(ロール名:test_role)から「DROP ANY TABLE」と --「DROP ANY INDEX」システム権限を剥奪する。 REVOKE DROP ANY TABLE, DROP ANY INDEX FROM test_role;
ロールの削除
ロールの削除には DROP ROLE句を使用します。
- DROP ROLE構文
-
DROP ROLE <ロール名>;
- ROLE削除の例文
- --(例)ロール(ロール名:test_role)を削除する。 DROP ROLE test_role;
ロールの情報を表示する
ロールの情報を表示するには DBA_ROLESデータディクショナリビューを検索します。
- ロールの情報を表示する
-
SELECT * FROM DBA_ROLES;
カラム | 内容 |
---|---|
ROLE | ロール名 |
AUTHENTICATION_TYPE | ロールの認証方式(NONE/EXTERNAL/GLOBAL/APPLICATION/PASSWORD) |
COMMON | ロールが共通かどうか (YES:共通 NO:共通でない) |
ORACLE_MAINTAINED | オラクルが提供したスクリプトによって作成されたロールか否か (Y/N) |