機密保護は、利用者に権限を与えることで、データベースに対する機密を保護するための機能です。データベースの運用形態に応じて、特定の利用者に権限を付与します。
権限チェックの対象資源の種類には、データベーススペース、スキーマ、表およびルーチンがあります。また、PRIMEFLEX for HA Databaseでデータベースを運用するときの利用形態には、いくつかの方法があります。その方法別に権限のチェック対象者が異なります。
利用形態と権限のチェック対象者を以下に示します。
利用形態 | 権限のチェック対象者 |
---|---|
RDBコマンド | コマンド実行者 |
アプリケーション | CONNECT文でデータベースに接続したユーザ |
ルーチン内SQL文 | ルーチンの定義者 |
データベースアクセスに対する機密保護機能は、データベースにアクセスする権限を認可識別子を利用してチェックします。認可識別子は、データベースにアクセスする権限を持つ利用者です。現行セションのログイン名が認可識別子となります。
データベースアクセスに対する機密保護機能が、権限チェックを行う場合の例を以下に示します。
CONNECT文実行時、認可識別子により認証を行う。
ログイン名(uchino)が認可識別子とみなされる。
表“STOCKS.在庫表”のデータを検索時、認可識別子のチェックを行う。
uchinoにSELECT権が付与されていれば、データベースの参照が行える。
SET SESSION AUTHORIZATION文実行時、認可識別子により認証を行う。
認可識別子が、ログイン名(satou)に変更される。
表“STOCKS.在庫表”のデータを検索時、認可識別子のチェックを行う。
satouにSELECT権が付与されていれば、データベースの参照が行える。
参照
CONNECT文およびSET SESSION AUTHORIZATION文の詳細については、“Symfoware Server SQLリファレンス”を参照してください。
データベースアクセスに対する機密保護機能として、設定可能な権限を以下に示します。
権限 | 意味 |
---|---|
SELECT権 | データ、順序を参照する権限 |
INSERT権 | データを格納する権限 |
UPDATE権 | データを更新する権限 |
DELETE権 | データを削除する権限 |
EXECUTE権 | ルーチンを実行する権限 |
資源に対し設定可能な権限を以下に示します。
資源 | 権限 |
---|---|
表 | SELECT権、INSERT権、UPDATE権、DELETE権 |
ビュー表 | SELECT権、INSERT権、UPDATE権、DELETE権 |
ルーチン | EXECUTE権 |
順序 | SELECT権 |
備考.資源の定義者は、その資源に対するすべての権限を持ちます。
各操作を行う場合に必要な権限の一覧を以下に示します。
各操作 | PRIMEFLEX for HA Databaseでの権限 | OS権限 | 備考 | |
---|---|---|---|---|
SQL文 | OPEN | SELECT権 | 実行権(アプリケーション) |
|
SELECT(単一) | SELECT権 | |||
INSERT | INSERT権 | |||
SELECT権 | 問合せ指定を含むとき | |||
UPDATE文:探索 | UPDATE権 |
| ||
SELECT権 | 探索条件が副問合せを含むとき | |||
DELETE文:探索 | DELETE権 |
| ||
SELECT権 | 探索条件が副問合せを含むとき | |||
UPDATE文:位置づけ | UPDATE権 |
| ||
DELETE文:位置づけ | DELETE権 | |||
プロシジャ実行 | EXECUTE権 | |||
カーソル宣言 | なし | |||
動的カーソル宣言 | なし | |||
表宣言 | なし | |||
埋込み例外宣言 | なし | |||
INCLUDE | なし | |||
CLOSE | SELECT権 | |||
FETCH | SELECT権 | |||
SET TRANSACTION | なし | |||
COMMIT | なし | |||
ROLLBACK | なし | |||
RELEASE TABLE | DELETE権 | |||
CONNECT | なし | |||
SET CONNECTION | なし | |||
DISCONNECT | なし | |||
SET CATALOG | なし | |||
SET SCHEMA | なし | |||
SET SESSION | なし | |||
SET USER PASSWORD | 現行セションの利用者 | |||
SET ROLE | 現行セションの利用者 | |||
ALLOCATE DESCRIPTOR | なし | |||
DEALLOCATE DESCRIPTOR | なし | |||
DESCRIPTOR取得文 | なし | |||
DESCRIPTOR設定文 | なし | |||
PREPARE | 準備可能文の権限 | |||
DEALLOCATE PREPARE | なし | |||
DESCRIBE | なし | |||
EXECUTE | 被準備文の権限 | |||
EXECUTE IMMEDIATE | 準備可能文の権限 | |||
動的OPEN | SELECT権 | |||
動的FETCH | SELECT権 | |||
動的CLOSE | SELECT権 | |||
動的DELETE:位置づけ | DELETE権 | |||
動的UPDATE:位置づけ | UPDATE権 |
注意
データベースの定義操作および運用コマンドは、管理用のユーザーIDを使用するユーザのみ実行可能です。詳細は、“1.1.5.1 PRIMEFLEX for HA Databaseで利用可能なSQL文(データベースの定義/変更/削除)”および“1.3.3 利用可能なコマンドの一覧”を参照してください。
機密保護の運用手順を以下に説明します。
表に対するアクセス権の付与は、表の定義者が実施することができます。権限の付与は、GRANT文で行います。
参照
GRANT文の詳細については、“3.3.9 権限情報定義”および“Symfoware Server SQLリファレンス”を参照してください。
GRANT文により表の定義者が各業務のリーダに付与権付きで権限を付与し、その後、リーダが各構成員に権限を付与した場合の例を以下に示します。