Symfoware Server RDB運用ガイド(データベース定義編) - FUJITSU -
目次 索引 前ページ次ページ

第2章 データベースの作成

2.11 権限情報定義

権限情報定義は、GRANTで行います。資源の定義時には、その資源の定義者のみが、その資源に対するすべての権限を保持しています。したがって、定義者以外がその資源をアクセスするためには、権限情報の定義を行います。GRANT文では、資源に対して、誰にどんな権限を与えるかを指定することができます。在庫管理データベースに権限情報を設定する例を以下に示します。スキーマSTOCKSに属する在庫表の権限情報を定義するものとします。

在庫表に対する参照、格納および更新権を付与する例
GRANT SELECT, INSERT, UPDATE  ON  STOCKS.在庫表
                 ↑                 ↑
                権限              対象名

       TO  SATO, SUZUKI, TANAKA
                    ↑
                権限受領者

また、権限の定義では、ある業務で必要な権限をまとめて設定したいという要件があります。このような権限の付与には、ロールを利用すると便利です。

■ローを利用した権限の定義

ロールとは、1つの業務で必要な権限をグループ化したものです。ある業務で必要な権限をまとめて設定する場合は、ロールを定義します。ロールを定義すると、その業務を行うすべての利用者にそのロールの権限を付与することができ、権限管理の効率化を図ることができます。

ロール機能を利用した権限付与の手順を以下に示します。

  1. ロールを定義する

  2. ロールに権限を付与する

  3. ロールの権限を利用者に付与する

     

ロール機能の概要を以下に示します。

1)ロールを定義す

ロールの定義は、CREATE ROLEで行います。

ロール“STOCKS_A2”を定義する例を以下に示します。

CREATE ROLE  STOCKS_A2
                ↑
             ロール名

2)ロールに権限を付与す

ロールに権限を付与するには、GRANTを利用します。定義したロールに対して、データベース内の表をアクセスするための権限を付与します。

ロールに対してGRANT文で付与できる権限について、以下の表に示します。

権限

操作の意味

SELECT権

データベース内の表のデータを参照する権限、
データベース内の順序を参照する権限

UPDATE権

データベース内の表のデータを更新する権限

DELETE権

データベース内の表のデータを削除する権限

INSERT権

データベース内の表のデータを挿入する権限

EXECUTE権

データベース内のプロシジャルーチン、またはファンクションルーチンを実行する権限

TRIGGER権

表にトリガを定義する権限

CREATE権

スキーマに、表、ビュー表、プロシジャルーチン、ファンクションルーチンまたは順序を定義する権限

ALLOCATE権

DSI定義で、データベーススペースに表の領域を割り付ける権限

DROP権

スキーマ、表、ビュー表、プロシジャルーチン、ファンクションルーチン、トリガまたは順序を削除する権限

ALTER権

表定義を更新する権限

INDEX権

表にインデックスを定義する権限

ロール“STOCKS_A2”に対して、各表における権限を付与する例を以下に示します。

GRANT SELECT  ON  STOCKS.在庫表  TO ROLE  STOCKS_A2;
        ↑             ↑                     ↑
       権限           対象名               ロール名

GRANT SELECT,INSERT,UPDATE ON STOCKS.発注表 TO ROLE STOCKS_A2;
GRANT SELECT,UPDATE,INSERT,DELETE ON STOCKS.会社表 TO ROLE STOCKS_A2;

3)ロールの権限を利用者に付与す

権限が付与されたロールを、利用者に対して付与します。

利用者へのロールの権限の付与は、GRANT文で行います。

ロール“STOCKS_A2”の権限を、利用者“SATO,SUZUKI,TANAKA”に付与する例を以下に示します。

GRANT STOCKS_A2  TO  SATO,SUZUKI,TANAKA
         ↑                 ↑
      ロール名          権限受領者

定義したロールに対して、GRANT文で付与した権限を有効にするには、アプリケーションでSET ROLEを実行しなければなりません。

デフォルトロールの設

権限情報の定義でロールを作成した場合、デフォルトロールを設定することができます。デフォルトロールとは、アプリケーション中でSET ROLE文を実行しなくても有効となるロールを、環境構築時にあらかじめ設定しておくものです。

デフォルトロールの設定は、ALTER USERで行います。

利用者“SATO,SUZUKI,TANAKA”にデフォルトロール“STOCKS_A2”を設定する例を以下に示します。

ALTER USER SATO DEFAULT_ROLE=STOCKS_A2;
ALTER USER SUZUKI DEFAULT_ROLE=STOCKS_A2;
ALTER USER TANAKA DEFAULT_ROLE=STOCKS_A2;

目次 索引 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2007-2008