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

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

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

DBMS_MACADMパッケージでは、Oracle Database Vaultのセキュア・アプリケーション・ロールの作成、名前変更、割当て、割当て解除、更新および削除が可能です。

19.1.1 CREATE_ROLEプロシージャ

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

構文

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

パラメータ

表19-1 CREATE_ROLEのパラメータ

パラメータ 説明

role_name

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

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

enabled

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

rule_set_name

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

現行のデータベース・インスタンスで既存のルール・セットを確認するには、「DBA_DV_RULE_SETビュー」で説明されている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;
/

19.1.2 DELETE_ROLEプロシージャ

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

構文

DBMS_MACADM.DELETE_ROLE(
  role_name IN VARCHAR2); 

パラメータ

表19-2 DELETE_ROLEのパラメータ

パラメータ 説明

role_name

ロール名。

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

EXEC DBMS_MACADM.DELETE_ROLE('SECT2_APP_MGR'); 

19.1.3 RENAME_ROLEプロシージャ

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

構文

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

パラメータ

表19-3 RENAME_ROLEのパラメータ

パラメータ 説明

role_name

現在のロール名。

現行のデータベース・インスタンスで既存のセキュア・アプリケーション・ロールを確認するには、「DBA_DV_ROLEビュー」で説明されている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;
/

19.1.4 UPDATE_ROLEプロシージャ

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

構文

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

パラメータ

表19-4 UPDATE_ROLEのパラメータ

パラメータ 説明

role_name

ロール名。

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

enabled

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

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

rule_set_name

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

現行のデータベース・インスタンスで既存のルール・セットを確認するには、「DBA_DV_RULE_SETビュー」で説明されている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;
/

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

DBMS_MACSEC_ROLESパッケージは、ユーザーに対する認可をチェックし、Oracle Database Vaultセキュア・アプリケーション・ロールを設定します。

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

19.2.1 CAN_SET_ROLEファンクション

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

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

構文

DBMS_MACSEC_ROLES.CAN_SET_ROLE(
  p_role IN VARCHAR2)
RETURN BOOLEAN;

パラメータ

表19-5 CAN_SET_ROLEのパラメータ

パラメータ 説明

p_role

ロール名。

現行のデータベース・インスタンスで既存のセキュア・アプリケーション・ロールを確認するには、「DBA_DV_ROLEビュー」で説明されている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;
/

19.2.2 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);

パラメータ

表19-6 SET_ROLEのパラメータ

パラメータ 説明

p_role

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

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

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

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

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