F
トップ > DBA入門 > 9章
9章 ロール

データベース管理システムが必要な理由


本章ではロールについて学んでいきます。

ロールを使用し複数の権限をグループ化することで管理を簡単にしていきましょう。

ロールは権限の入れ物のような機能です。ロールに複数の権限を付与し、
ユーザに付与することでロールに付与された複数の権限を使用することができます。

ロール

ロールの特徴は以下の通りです。
・ロールに対し複数の権限を付与できる
・ロールに対しロールを付与できる
・1つのロールを複数のユーザに付与できる

ロールは多くの権限を多くのユーザに付与したい場合に便利な機能です。
また1つのロールでまとめて権限を付与できるので管理が楽になります。

事前定義のロール


データベースを作成すると自動的に作成される事前定義ロールがあります。
CONNECTロール CREATE SESSIONが付与されたロール
RESOURCEロール CREATE TABLE権限などのCREATE系の
権限が付与されたロール
DBAロール WITH ADMIN OPTION付きのすべての
権限が付与されたロール

上記以外のロールも多くありますので、詳しい内容はマニュアルを参照してください。 「Oracle Databaseセキュリティ・ガイド 12cリリース1 (12.1)」

ではロールの作成方法です。
[構文] ロールの作成
 CREATE ROLE ロール名;

上記構文でロールを作成後、ユーザに権限を付与するのと
同じように権限をロールに付与していきます。

  SQL> CREATE ROLE TEST_ROLE;

  Role created.

  SQL> GRANT CREATE SESSION TO TEST_ROLE;

  Grant succeeded.

  SQL> GRANT SELECT ON test_user.test_tbl TO TEST_ROLE;

  Grant succeeded.


TEST_ROLEという名前のロールを作成し、
その後、CREATE SESSIONとSELECT権限を付与しました。

では前回作成したTOMユーザにTEST_ROLEを付与してみましょう。

  SQL> GRANT test_role TO tom;

  Grant succeeded.
 

TOMユーザはtest_roleを付与されたので、CREATE SESSIONと
test_userユーザのtest_tblテーブルのSELECT権限を使用できます。

セキュアロール


ロールは付与されたら、そのロールの権限を使用することができます。
便利な反面、セキュリティとしては問題があります。
そこでロール使用時にパスワードを入力することで
セキュリティを高めることができます。

[構文] セキュアロールの作成
 CREATE ROLE ロール名 IDENTIFIED BY パスワード;

セキュアロールはロール作成時にパスワードを設定する
IDENTIFIED BY句を使用します。

それではTOMユーザにセキュアロールを付与してみます。

  SQL> CREATE ROLE delete_test_tbl IDENTIFIED BY test;

  Role created.

  SQL> GRANT delete ON test_user.test_tbl TO delete_test_tbl;

  Grant succeeded.

  SQL> GRANT delete_test_tbl TO tom;

  Grant succeeded.

  SQL> conn tom/tom
  Connected.

  SQL> DELETE FROM test_user.test_tbl;
  delete from test.test
                   *
  ERROR at line 1:
  ORA-01031: insufficient privileges

  SQL> SET ROLE delete_test_tbl IDENTIFIED BY test;

  Role set.

  SQL> DELETE FROM test_user.test_tbl;

  1 row deleted.
  

上記例の様にロールはSET ROLEコマンドを使用しパスワードを入力することで、
そのロールの権限を有効化することができます。

ロールの削除


最後にロールの削除方法です。

[構文] ロールの削除
 DROP ROLE ロール名;

すでにDB接続しているユーザのロールも削除可能です。
削除されたロールに付与された権限は即座に使用できなくなります。

本章は以上となります。今回はロールの管理について学んでいきました。