Symfoware/RDBの環境作成が完了したら、データベースを作成します。
Symfoware/RDBのデータベースの作成の流れを以下の図に示します。
図4.5 データベース環境の構築の手順
なお、データベースの作成方法には、以下があります。
WebDBtoolsから定義する方法
rdbddlexコマンドで定義する方法
アプリケーションから定義する方法
データベースの作成はWebDBtoolsを使用すると簡単に行えます。
本項では、rdbddlexコマンドで定義する方法を用いて説明します。
参考
WebDBtoolsから定義する方法の詳細については、“WebDBtoolsヘルプ”を参照してください。“WebDBtoolsヘルプ”は、WebDBtools画面上の[ヘルプ]ボタンをクリックすることで参照できます。
アプリケーションから定義する方法の詳細については、“RDB運用ガイド(データベース定義編)”を参照してください。
権限情報の定義
GRANT文では、資源に対して、誰にどんな権限を与えるかを指定します。
また、権限の定義では、ある業務で必要な権限をまとめて設定したいという要件があります。そういった権限の付与には、ロールを利用すると便利です。
ロールとは、1つの業務で必要な権限をグループ化したものです。ロールを定義し、その業務を行うすべての利用者にそのロールの権限を付与することにより、権限管理の効率化を図ることができます。
ロール機能を利用した権限の付与方法の手順を以下に示します。
ロール機能の概要を以下に示します。
参考
ロール機能を使わない権限の付与方法については、“RDB運用ガイド(データベース定義編)”を参照してください。
ロールを定義します。ロールの定義は、rdbddlexコマンドのCREATE ROLE文で行います。
ロール“STOCKS_A2”を定義する例を以下に示します。
$ rdbddlex /home/rdb/DDL/crle.dat
[crle.datの例]
CREATE ROLE STOCKS_A2;
CREATE ROLE文の詳細については、“11.4 CREATE ROLE文(ロール定義文)”を参照してください。
定義したロールに対して、データベース内の表をアクセスするための権限を付与します。
ロールに対してGRANT文で付与できる権限について、以下の表に示します。
権限 | 操作の意味 |
---|---|
SELECT権 | データベース内の表のデータを参照する。 |
UPDATE権 | データベース内の表のデータを更新する。 |
DELETE権 | データベース内の表のデータを削除する。 |
INSERT権 | データベース内の表のデータを挿入する。 |
EXECUTE権 | データベース内のルーチンを実行する。 |
ロールの権限の付与はrdbddlexコマンドのGRANT文で行います。
ロール“STOCKS_A2”に権限を付与する例を以下に示します。
$ rdbddlex -d RDBDB /home/rdb/DDL/grnt.dat
[grnt.datの例]
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;
GRANT文の詳細については、“11.8 GRANT文”を参照してください。
権限を付与したロールに対して、利用者に付与します。
利用者への付与は、rdbddlexコマンドのGRANT文で行います。
ロール“STOCKS_A2”の権限を、利用者“SATO,SUZUKI,TANAKA”に付与する例を以下に示します。
$ rdbddlex /home/rdb/DDL/grnr.dat
[grnr.datの例]
GRANT STOCKS_A2 TO SATO,SUZUKI,TANAKA;
GRANT文の詳細については、“11.8 GRANT文”を参照してください。 定義したロールに対して、GRANT文で付与した権限を有効にするには、アプリケーションでSET ROLE文を実行しなければなりません。アプリケーションでSET ROLE文を実行する方法については、“12.3.1 ロールの有効化”を参照してください。
また、各コマンドで必要な権限を含むロールが付与されている利用者が、運用系コマンド(rdbfmt、rdbsaloader、rdbsloader、rdbsuloader、rdbunl、rdbunlx)を実行するには、セキュリティパラメタのROLE_RANGEにLEVEL1を設定します。ただし、標準運用時のみ有効です。ROLE_RANGEの詳細については“11.12 SET SYSTEM PARAMETER文”を参照してください。
また、アプリケーション中でSET ROLE文を実行せずに有効となるロールを、環境構築時にあらかじめ設定しておくこともできます。詳細については、“デフォルトロールの設定”を参照してください。
権限情報の定義でロールを作成した場合、デフォルトロールを設定することができます。
デフォルトロールとは、アプリケーション中でSET ROLE文を実行せずに有効となるロールを、環境構築時にあらかじめ設定しておくものです。
デフォルトロールの設定は、ALTER USER文で行います。
利用者“SATO,SUZUKI,TANAKA”にデフォルトロール“STOCKS_A2”を設定する例を以下に示します。
$ rdbddlex /home/rdb/DDL/defrl.dat
[defrl.datの例]
ALTER USER SATO DEFAULT_ROLE=STOCKS_A2; ALTER USER SUZUKI DEFAULT_ROLE=STOCKS_A2; ALTER USER TANAKA DEFAULT_ROLE=STOCKS_A2;
ALTER USER文の詳細については、“11.2 ALTER USER文(利用者変更文)”を参照してください。
データベースの定義が終了したら、データベースの定義情報を確認します。
詳細については、“4.7 データベースの定義情報の参照”を参照してください。