プライマリ・コンテンツに移動
Oracle® Database Vault管理者ガイド
12cリリース1 (12.1)
B71286-08
目次へ移動
目次
索引へ移動
索引

前
次

17 Oracle Database Vaultセキュア・アプリケーション・ロールのAPI

DBMS_MACADMおよびDBMS_MACSEC_ROLES PL/SQLパッケージは、Database Vaultセキュア・アプリケーション・ロールを管理します。

内容は次のとおりです。

関連項目:

DBMS_MACADMセキュア・アプリケーション・ロールのプロシージャ

DBMS_MACADMパッケージを使用すると、Oracle Database Vaultのセキュア・アプリケーション・ロールの作成、削除、名前変更および更新を行うことができます。

表17-1に、これらのプロシージャを示します。DV_OWNERロールまたはDV_ADMINロールを付与されているユーザーのみがこれらのプロシージャを使用できます。

表17-1 DBMS_MACADMのセキュア・アプリケーション・ロール構成プロシージャ

プロシージャ 説明

CREATE_ROLEプロシージャ

Oracle Database Vaultセキュア・アプリケーション・ロールを作成します。

DELETE_ROLEプロシージャ

Oracle Database Vaultセキュア・アプリケーション・ロールを削除します。

RENAME_ROLEプロシージャ

Oracle Database Vaultセキュア・アプリケーション・ロールの名前を変更します。名前の変更は、そのロールが使用されているすべての箇所に反映されます。

UPDATE_ROLEプロシージャ

Oracle Database Vaultセキュア・アプリケーション・ロールを更新します。

CREATE_ROLEプロシージャ

CREATE_ROLEプロシージャは、Oracle Database Vaultセキュア・アプリケーション・ロールを作成します。

構文

DBMS_MACADM.CREATE_ROLE(
  role_name      IN VARCHAR2, 
  enabled        IN VARCHAR2,
  rule_set_name  IN VARCHAR2);

パラメータ

表17-2 CREATE_ROLEのパラメータ

パラメータ 説明

role_name

ロール名(空白を使用せず、最大128文字)。マルチテナント環境では、ロール名の先頭にc##またはC##を付加します。

現行のデータベース・インスタンスで既存のセキュア・アプリケーション・ロールを検索するには、「DVSYS.DBA_DV_ROLEビュー」で説明されているDVSYS.DBA_DV_ROLEビューに問い合せます。

enabled

DBMS_MACUTL.G_YES(Yes)を選択するとロールが有効化できるようになり、DBMS_MACUTL.G_NO(No)を選択するとロールを有効化できなくなります。デフォルト値はDBMS_MACUTL.G_YESです。

rule_set_name

このセキュア・アプリケーションを有効にできるかどうかを判断するためのルール・セットの名前。

現行のデータベース・インスタンスで既存のルール・セットを検索するには、「DVSYS.DBA_DV_RULE_SETビュー」で説明されているDVSYS.DBA_DV_RULE_SETビューに問い合せます。

BEGIN
 DBMS_MACADM.CREATE_ROLE(
  role_name      => 'Sector2_APP_MGR', 
  enabled        => DBMS_MACUTL.G_YES,
  rule_set_name  => 'Check App2 Access');
END;
/

DELETE_ROLEプロシージャ

DELETE_ROLEプロシージャは、Oracle Database Vaultセキュア・アプリケーション・ロールを削除します。

構文

DBMS_MACADM.DELETE_ROLE(
  role_name IN VARCHAR2); 

パラメータ

表17-3 DELETE_ROLEのパラメータ

パラメータ 説明

role_name

ロール名。

現行のデータベース・インスタンスで既存のセキュア・アプリケーション・ロールを検索するには、「DVSYS.DBA_DV_ROLEビュー」で説明されているDVSYS.DBA_DV_ROLEビューに問い合せます。

EXEC DBMS_MACADM.DELETE_ROLE('SECT2_APP_MGR'); 

RENAME_ROLEプロシージャ

RENAME_ROLEプロシージャは、Oracle Database Vaultセキュア・アプリケーション・ロールの名前を変更します。名前の変更は、そのロールが使用されているすべての箇所に反映されます。

構文

DBMS_MACADM.RENAME_ROLE(
  role_name      IN VARCHAR2, 
  new_role_name  IN VARCHAR2);

パラメータ

表17-4 RENAME_ROLEのパラメータ

パラメータ 説明

role_name

現在のロール名。

現行のデータベース・インスタンスで既存のセキュア・アプリケーション・ロールを検索するには、「DVSYS.DBA_DV_ROLEビュー」で説明されているDVSYS.DBA_DV_ROLEビューに問い合せます。

new_role_name

ロール名(空白を使用せず、最大128文字)。この名前が、『Oracle Database SQL言語リファレンス』で説明されているロール作成の標準のOracleネーミング規則に準拠していることを確認してください。マルチテナント環境では、ロール名の先頭にc##またはC##を付加します。

BEGIN
 DBMS_MACADM.RENAME_ROLE(
  role_name      => 'SECT2_APP_MGR', 
  new_role_name  => 'SECT2_SYSADMIN');
END;
/

UPDATE_ROLEプロシージャ

UPDATE_ROLEプロシージャは、Oracle Database Vaultセキュア・アプリケーション・ロールを更新します。

構文

DBMS_MACADM.UPDATE_ROLE(
  role_name      IN VARCHAR2, 
  enabled        IN VARCHAR2, 
  rule_set_name  IN VARCHAR2);

パラメータ

表17-5 UPDATE_ROLEのパラメータ

パラメータ 説明

role_name

ロール名。

現行のデータベース・インスタンスで既存のセキュア・アプリケーション・ロールを検索するには、「DVSYS.DBA_DV_ROLEビュー」で説明されているDVSYS.DBA_DV_ROLEビューに問い合せます。

enabled

DBMS_MACUTL.G_YES(Yes)を選択するとロールが有効化できるようになり、DBMS_MACUTL.G_NO(No)を選択するとロールを有効化できなくなります。

enabledのデフォルトは設定済の値で、DVSYS.DBA_DV_ROLEデータ・ディクショナリ・ビューに問い合せることで確認できます。

rule_set_name

このセキュア・アプリケーションを有効にできるかどうかを判断するためのルール・セットの名前。

現行のデータベース・インスタンスで既存のルール・セットを検索するには、「DVSYS.DBA_DV_RULE_SETビュー」で説明されているDVSYS.DBA_DV_RULE_SETビューに問い合せます。

BEGIN
 DBMS_MACADM.UPDATE_ROLE(
  role_name      => 'SECT2_SYSADMIN', 
  enabled        => DBMS_MACUTL.G_YES, 
  rule_set_name  => 'System Access Controls');
END;
/

DBMS_MACSEC_ROLESセキュア・アプリケーション・ロールのプロシージャおよびファンクション

DBMS_MACSEC_ROLESパッケージは、ユーザーの権限をチェックして、Oracle Database Vaultセキュア・アプリケーション・ロールを設定します。

DBMS_MACSEC_ROLESパッケージは、すべてのユーザーが使用できます。

表17-6に、DBMS_MACSEC_ROLESパッケージのファンクションおよびプロシージャを示します。

表17-6 DBMS_MACSEC_ROLESのOracle Label Security構成プロシージャ

ファンクションまたはプロシージャ 説明

CAN_SET_ROLEファンクション

メソッドを起動するユーザーに、指定されたOracle Database Vaultセキュア・アプリケーション・ロールを使用する権限が付与されているかどうかをチェックします。BOOLEAN値を返します。

SET_ROLEプロシージャ

Oracle Database Vaultセキュア・アプリケーション・ロールに対してSET ROLE文を発行します。

CAN_SET_ROLEファンクション

CAN_SET_ROLEファンクションは、メソッドを起動するユーザーに、Oracle Database Vaultセキュア・アプリケーション・ロールを使用する権限があるかどうかをチェックします。

認可は、ロールに関連付けられたルール・セットのチェックにより決定されます。戻り型はBOOLEANです。

構文

DBMS_MACSEC_ROLES.CAN_SET_ROLE(
  p_role IN VARCHAR2)
RETURN BOOLEAN;

パラメータ

表17-7 CAN_SET_ROLEのパラメータ

パラメータ 説明

p_role

ロール名。

現行のデータベース・インスタンスで既存のセキュア・アプリケーション・ロールを検索するには、「DVSYS.DBA_DV_ROLEビュー」で説明されているDVSYS.DBA_DV_ROLEビューに問い合せます。

SET SERVEROUTPUT ON
BEGIN
 IF DBMS_MACSEC_ROLES.CAN_SET_ROLE('SECTOR2_APP_MGR')
  THEN DBMS_OUTPUT.PUT_LINE('''SECTOR2_APP_MGR'' can be enabled.');
 END IF;
END;
/

SET_ROLEプロシージャ

SET_ROLEプロシージャは、指定されたロールのSET ROLE PL/SQL文を発行します。

このプロシージャのチェック・プロセスには、Oracle Database Vaultのセキュア・アプリケーション・ロールと通常のOracle Databaseロールの両方が含まれています。

このプロシージャは、ロールに関連付けられているルール・セットがtrueと評価される場合にのみ、Oracle Database Vaultセキュア・アプリケーション・ロールを設定します。SET ROLEの発行前に、CAN_SET_ROLEメソッドがコールされ、ロールに関連付けられたルール・セットがチェックされます。監査などのランタイムのルール・セットの動作、障害処理およびイベント処理が、このプロセス中に発生します。

SET_ROLEプロシージャは、一般のデータベース・アカウント群で使用できます。

構文

DBMS_MACSEC_ROLES.SET_ROLE(
  p_role IN VARCHAR2);

パラメータ

表17-8 SET_ROLEのパラメータ

パラメータ 説明

p_role

ロール名。セキュア・アプリケーション・ロールや標準ロールなど、複数のロールをカンマ(,)区切りで入力できます。

現行のデータベース・インスタンスで既存のセキュア・アプリケーション・ロールを検索するには、DVSYS.DBA_DV_ROLEビューで説明されているDVSYS.DBA_DV_ROLEビューに問い合せます。

データベース内の既存のすべてのロールを検索するには、『Oracle Databaseリファレンス』で説明されているDBA_ROLESデータ・ディクショナリ・ビューに問い合せます。

EXEC DBMS_MACSEC_ROLES.SET_ROLE('SECTOR2_APP_MGR, APPS_MGR');

ロール名前は大文字、小文字のいずれでも入力できます(Sector2_APP_MGRなど)。