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

前
次

14 Oracle Database Vaultルール・セットのAPI

DBMS_MACADM PL/SQLパッケージをおよび一連のOracle Database Vaultルール・ファンクションを使用すると、ルール・セットを管理できます。

内容は次のとおりです。

DBMS_MACADMルール・セットのプロシージャ

DBMS_MACADMルール・セット・プロシージャにより、ルール・セット、およびこれらのルール・セット内に入れられる個々のルールを構成できます。

表14-1に、ルール・セットの構成に使用できるDBMS_MACADMパッケージのプロシージャを示します。DV_OWNERロールまたはDV_ADMINロールを付与されているユーザーのみがこれらのプロシージャを使用できます。

表14-1 DBMS_MACADMのルール・セット構成プロシージャ

プロシージャ 説明

ADD_RULE_TO_RULE_SETプロシージャ

ルールをルール・セットに追加します。

CREATE_RULEプロシージャ

ルールを作成します。

CREATE_RULE_SETプロシージャ

ルール・セットを作成します。

DELETE_RULEプロシージャ

ルールを削除します。

DELETE_RULE_FROM_RULE_SETプロシージャ

ルールをルール・セットから削除します。

DELETE_RULE_SETプロシージャ

ルール・セットを削除します。

RENAME_RULEプロシージャ

ルールの名前を変更します。名前の変更は、そのルールが使用されているすべての箇所に反映されます。

RENAME_RULE_SETプロシージャ

ルール・セットの名前を変更します。名前の変更は、そのルール・セットが使用されているすべての箇所に反映されます。

UPDATE_RULEプロシージャ

ルールを更新します。

UPDATE_RULE_SETプロシージャ

ルール・セットを更新します。

関連項目:

ADD_RULE_TO_RULE_SETプロシージャ

ADD_RULE_TO_RULE_SETプロシージャは、ルール・セットにルールを追加します。これにより、ルール・セットの評価時にルールをチェックさせることができます。

構文

DBMS_MACADM.ADD_RULE_TO_RULE_SET(
  rule_set_name  IN VARCHAR2, 
  rule_name      IN VARCHAR2, 
  rule_order     IN NUMBER, 
  enabled        IN VARCHAR2);

パラメータ

表14-2 ADD_RULE_TO_RULE_SETのパラメータ

パラメータ 説明

rule_set_name

ルール・セット名。

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

rule_name

ルール・セットに追加するルール。

既存のルールを検索するには、「DVSYS.DBA_DV_RULEビュー」で説明されているDVSYS.DBA_DV_RULEビューに問い合せます。

ルール・セットに関連付けられているルールを検索するには、「DVSYS.DBA_DV_RULEビュー」で説明されているDVSYS.DBA_DV_RULE_SET_RULEを使用します。

rule_order

このリリースには適用されませんが、ADD_RULE_TO_RULE_SETプロシージャを機能させるには値を指定する必要があります。1を入力します。

enabled

オプションです。ルール・セットの評価時にルールをチェックする必要があるかどうかを判断します。可能な値は次のとおりです。

  • DBMS_MACUTL.G_YES(Yes、デフォルト)。ルール・セットの評価時にルールをチェックできるようにします。

  • DBMS_MACUTL.G_NO(No)。ルール・セットの評価時にルールをチェックできないようにします。

詳細は、表19-1を参照してください。

次の例では、ルールをルール・セットに追加し、enabledパラメータを省略して、ルール・セットの評価時に自動的にルール・チェックが有効化されるようにします。

BEGIN
 DBMS_MACADM.ADD_RULE_TO_RULE_SET(
  rule_set_name => 'Limit_DBA_Access', 
  rule_name     => 'Restrict DROP TABLE operations',
  rule_order    => 1);
END;
/

次の例では、ルールをルール・セットに追加しますが、ルール・チェックを無効化します。

BEGIN
 DBMS_MACADM.ADD_RULE_TO_RULE_SET(
  rule_set_name => 'Limit_DBA_Access',
  rule_name     => 'Check UPDATE operations',
  rule_order    => 1,
  enabled       => DBMS_MACUTL.G_NO);
END;
/

CREATE_RULEプロシージャ

CREATE_RULEプロシージャはルールを作成します。作成したルールは、後でルール・セットに追加できます。

構文

DBMS_MACADM.CREATE_RULE(
  rule_name  IN VARCHAR2, 
  rule_expr  IN VARCHAR2);

パラメータ

表14-3 CREATE_RULEパラメータ

パラメータ 説明

rule_name

ルール名(大/小文字混在で最大128文字)。空白を使用できます。

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

ルール・セットに関連付けられているルールを検索するには、「DVSYS.DBA_DV_RULE_SET_RULEビュー」で説明されているDVSYS.DBA_DV_RULE_SET_RULEに問い合せます。

rule_expr

PL/SQL BOOLEAN式。

式に引用符が含まれる場合、二重引用符は使用しないでください。その場合は、2つの一重引用符を使用します。式全体を一重引用符で囲んでください。次に例を示します。

'TO_CHAR(SYSDATE,''HH24'') = ''12'''

ルール式の詳細は、「新規ルールの作成」を参照してください。

次の例に、現行セッション・ユーザーがSYSADMであるかどうかをチェックするルール式の作成方法を示します。

BEGIN
 DBMS_MACADM.CREATE_RULE(
  rule_name  => 'Check UPDATE operations', 
  rule_expr  =>'SYS_CONTEXT(''USERENV'',''SESSION_USER'') = ''SYSADM''');
END;
/

注意:

次の新機能は、Oracle Database 12cリリース1 (12.1.0.2)以上で使用できます。

次の例に、パブリック・スタンドアロン・ファンクションOLS_LABEL_DOMINATESを使用して、hr_ols_pol Oracle Label Securityポリシーのセッション・ラベルがhsラベルより優位にあるか同等であるかを確認するルール式の作成方法を示します。値0は、falseである場合を示します。(同等であるかどうかをチェックするには、1を示します。)

BEGIN
 DBMS_MACADM.CREATE_RULE(
  rule_name  => 'Check OLS Factor', 
  rule_expr  => 'OLS_LABEL_DOMINATES(''hr_ols_pol'', ''hs'') = 1');
END;
/

CREATE_RULE_SETプロシージャ

CREATE_RULE_SETプロシージャはルール・セットを作成します。

ルール・セットを作成した後で、CREATE_RULEおよびADD_RULE_TO_RULE_SETプロシージャを使用してルールを作成し、ルール・セットに追加します。

構文

DBMS_MACADM.CREATE_RULE_SET(
  rule_set_name    IN VARCHAR2, 
  description      IN VARCHAR2, 
  enabled          IN VARCHAR2, 
  eval_options     IN NUMBER, 
  audit_options    IN NUMBER, 
  fail_options     IN NUMBER, 
  fail_message     IN VARCHAR2, 
  fail_code        IN NUMBER, 
  handler_options  IN NUMBER, 
  handler          IN VARCHAR2,
  is_static        IN BOOLEAN DEFAULT);

パラメータ

表14-4 CREATE_RULE_SETパラメータ

パラメータ 説明

rule_set_name

ルール・セット名(大/小文字混在で最大90文字)。空白を使用できます。

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

description

ルール・セットの目的の説明(大/小文字混在で最大1024文字)。

enabled

DBMS_MACUTL.G_YES(Yes)では、ルール・セットが有効になり、DBMS_MACUTL.G_NO(No)では無効になります。デフォルト値はDBMS_MACUTL.G_YESです。

eval_options

ルール・セットに複数のルールを割り当てる場合は、次の設定のいずれかを入力します。

  • DBMS_MACUTL.G_RULESET_EVAL_ALL: ルール・セット自体がTrue(デフォルト)と評価されるためには、ルール・セットのルールがすべてTrueと評価される必要があります。

  • DBMS_MACUTL.G_RULESET_EVAL_ANY: ルール・セット自体がTrueと評価されるためには、ルール・セットの少なくとも1つのルールがTrueと評価される必要があります。

audit_options

次の設定のいずれかを選択します。

  • DBMS_MACUTL.G_RULESET_AUDIT_OFF: ルール・セットの監査を無効にします(デフォルト)。

  • DBMS_MACUTL.G_RULESET_AUDIT_FAIL: ルール・セット違反が発生した場合に監査レコードを作成します。

  • DBMS_MACUTL.G_RULESET_AUDIT_SUCCESS: ルール・セット評価が合格の場合に監査レコードを作成します。

  • DBMS_MACUTL.G_RULESET_AUDIT_FAIL + DBMS_MACUTL.G_RULESET_AUDIT_SUCCESS: ルール・セット評価が合格と不合格のどちらの場合も監査レコードを作成します。

fail_options

エラーをレポートするオプション:

  • DBMS_MACUTL.G_RULESET_FAIL_SHOW: エラー・メッセージを表示します(デフォルト)。

  • DBMS_MACUTL.G_RULESET_FAIL_SILENT: エラー・メッセージを表示しません。

fail_message

大/小文字混在の最大80文字で、失敗を示すエラー・メッセージを入力し、fail_codeで指定した失敗コードに関連付けます。

fail_code

-20000から-20999または20000から20999の範囲の数値を入力し、fail_messageパラメータに関連付けます。

handler_options

次の設定のいずれかを選択します。

  • DBMS_MACUTL.G_RULESET_HANDLER_OFF: エラー処理を無効にします(デフォルト)。

  • DBMS_MACUTL.G_RULESET_HANDLER_FAIL: ルール・セット失敗時にハンドラをコールします。

  • DBMS_MACUTL.G_RULESET_HANDLER_SUCCESS: ルール・セット成功時にハンドラをコールします。

handler

カスタム・イベント・ハンドラ・ロジックを定義するPL/SQLファンクションまたはプロシージャの名前。

is_static

オプションです。アクセスされる際にルール・セットが評価される頻度を決定します。デフォルトはFALSEです。

  • TRUE: ルール・セットはユーザー・セッション中に1回、評価されます。その後、値は再利用されます。

  • FALSE: ルール・セットは毎回評価されます。

BEGIN
 DBMS_MACADM.CREATE_RULE_SET(
  rule_set_name    => 'Limit_DBA_Access', 
  description      => 'DBA access through predefined processes', 
  enabled          => DBMS_MACUTL.G_YES,
  eval_options     => DBMS_MACUTL.G_RULESET_EVAL_ANY,
  audit_options    => DBMS_MACUTL.G_RULESET_AUDIT_FAIL + DBMS_MACUTL.G_RULESET_AUDIT_SUCCESS,
  fail_options     => DBMS_MACUTL.G_RULESET_FAIL_SILENT,
  fail_message     => '',
  fail_code        => 20461,
  handler_options  => DBMS_MACUTL.G_RULESET_HANDLER_FAIL, 
  handler          => 'dbavowner.email_alert',
  is_static        => TRUE);
END;
/

関連項目:

例19-2

DELETE_RULEプロシージャ

DELETE_RULEプロシージャはルールを削除します。

構文

DBMS_MACADM.DELETE_RULE(
  rule_name IN VARCHAR2); 

パラメータ

表14-5 DELETE_RULEのパラメータ

パラメータ 説明

rule_name

ルール名。

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

ルール・セットに関連付けられているルールを検索するには、「DVSYS.DBA_DV_RULE_SET_RULEビュー」で説明されているDVSYS.DBA_DV_RULE_SET_RULEに問い合せます。

EXEC DBMS_MACADM.DELETE_RULE('Check UPDATE operations'); 

DELETE_RULE_FROM_RULE_SETプロシージャ

DELETE_RULE_FROM_RULE_SETプロシージャは、ルールをルール・セットから削除します。

構文

DBMS_MACADM.DELETE_RULE_FROM_RULE_SET(
  rule_set_name IN VARCHAR2, 
  rule_name     IN VARCHAR2);

パラメータ

表14-6 DELETE_RULE_FROM_RULE_SETのパラメータ

パラメータ 説明

rule_set_name

ルール・セット名。

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

rule_name

ルール・セットから削除するルール。

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

ルール・セットに関連付けられているルールを検索するには、「DVSYS.DBA_DV_RULE_SET_RULEビュー」で説明されているDVSYS.DBA_DV_RULE_SET_RULEに問い合せます。

BEGIN
 DBMS_MACADM.DELETE_RULE_FROM_RULE_SET(
  rule_set_name => 'Limit_DBA_Access', 
  rule_name     => 'Check UPDATE operations');
END;
/

DELETE_RULE_SETプロシージャ

DELETE_RULE_SETプロシージャはルール・セットを削除します。

構文

DBMS_MACADM.DELETE_RULE_SET(
  rule_set_name IN VARCHAR2); 

パラメータ

表14-7 DELETE_RULE_SETのパラメータ

パラメータ 説明

rule_set_name

ルール・セット名。

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

EXEC DBMS_MACADM.DELETE_RULE_SET('Limit_DBA_Access'); 

RENAME_RULEプロシージャ

RENAME_RULEプロシージャは、ルールの名前を変更して、その名前変更がすべてのルール使用箇所に反映されるようにします。

構文

DBMS_MACADM.RENAME_RULE(
  rule_name  IN VARCHAR2, 
  new_name   IN VARCHAR2); 

パラメータ

表14-8 RENAME_RULEのパラメータ

パラメータ 説明

rule_name

現在のルール名。

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

ルール・セットに関連付けられているルールを検索するには、「DVSYS.DBA_DV_RULE_SET_RULEビュー」で説明されているDVSYS.DBA_DV_RULE_SET_RULEに問い合せます。

new_name

新しいルール名(大/小文字混在で最大128文字)。

BEGIN
 DBMS_MACADM.RENAME_RULE(
  rule_name  => 'Check UPDATE operations', 
  new_name   => 'Check Sector 2 Processes');
END; 
/

RENAME_RULE_SETプロシージャ

RENAME_RULE_SETプロシージャは、ルール・セットの名前を変更して、その名前変更がすべてのルール・セット使用箇所に反映されるようにします。

構文

DBMS_MACADM.RENAME_RULE_SET(
  rule_set_name IN VARCHAR2, 
  new_name      IN VARCHAR2); 

パラメータ

表14-9 RENAME_RULE_SETのパラメータ

パラメータ 説明

rule_set_name

現在のルール・セット名。

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

new_name

新しいルール・セット名(大/小文字混在で最大128文字)。空白を使用できます。

BEGIN
 DBMS_MACADM.RENAME_RULE_SET(
  rule_set_name => 'Limit_DBA_Access', 
  new_name      => 'Limit Sector 2 Access'); 
END;
/

UPDATE_RULEプロシージャ

UPDATE_RULEプロシージャはルールを更新します。

構文

DBMS_MACADM.UPDATE_RULE(
  rule_name  IN VARCHAR2, 
  rule_expr  IN VARCHAR2);

パラメータ

表14-10 UPDATE_RULEのパラメータ

パラメータ 説明

rule_name

ルール名。

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

ルール・セットに関連付けられているルールを検索するには、「DVSYS.DBA_DV_RULE_SET_RULEビュー」で説明されているDVSYS.DBA_DV_RULE_SET_RULEに問い合せます。

rule_expr

PL/SQL BOOLEAN式。

式に引用符が含まれる場合、二重引用符は使用しないでください。その場合は、2つの一重引用符を使用します。式全体を一重引用符で囲んでください。次に例を示します。

'TO_CHAR(SYSDATE,''HH24'') = ''12'''

ルール式の詳細は、「新規ルールの作成」を参照してください。

既存のルール式を検索するには、DVSYS.DBA_DV_RULEビューに問い合せます。

BEGIN
 DBMS_MACADM.UPDATE_RULE(
  rule_name  => 'Check UPDATE operations', 
  rule_expr  =>'SYS_CONTEXT(''USERENV'',''SESSION_USER'') = ''SYSADM'' AND
               (
                 UPPER(SYS_CONTEXT(''USERENV'',''MODULE'')) LIKE ''APPSRVR%'' OR
                 UPPER(SYS_CONTEXT(''USERENV'',''MODULE'')) LIKE ''DBAPP%'' )'
               );
END;
/

UPDATE_RULE_SETプロシージャ

UPDATE_RULE_SETプロシージャはルール・セットを更新します。

構文

DBMS_MACADM.UPDATE_RULE_SET(
  rule_set_name    IN VARCHAR2,
  description      IN VARCHAR2, 
  enabled          IN VARCHAR2, 
  eval_options     IN NUMBER, 
  audit_options    IN NUMBER, 
  fail_options     IN NUMBER, 
  fail_message     IN VARCHAR2, 
  fail_code        IN NUMBER, 
  handler_options  IN NUMBER, 
  handler          IN VARCHAR2,
  is_static        IN BOOLEAN DEFAULT FALSE); 

パラメータ

表14-11 UPDATE_RULE_SETのパラメータ

パラメータ 説明

rule_set_name

ルール・セット名。

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

description

ルール・セットの目的の説明(大/小文字混在で最大1024文字)。

enabled

DBMS_MACUTL.G_YES(Yes)では、ルール・セット・チェックが有効になり、DBMS_MACUTL.G_NO(No)では無効になります。

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

eval_options

ルール・セットに複数のルールを割り当てる場合は、次の設定のいずれかを入力します。

  • DBMS_MACUTL.G_RULESET_EVAL_ALL: ルール・セット自体がTrueと評価されるためには、ルール・セットのルールがすべてTrueと評価される必要があります。

  • DBMS_MACUTL.G_RULESET_EVAL_ANY: ルール・セット自体がTrueと評価されるためには、ルール・セットの少なくとも1つのルールがTrueと評価される必要があります。

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

audit_options

次の設定のいずれかを選択します。

  • DBMS_MACUTL.G_RULESET_AUDIT_OFF: ルール・セットの監査を無効にします。

  • DBMS_MACUTL.G_RULESET_AUDIT_FAIL: ルール・セット違反が発生した場合に監査レコードを作成します。

  • DBMS_MACUTL.G_RULESET_AUDIT_SUCCESS: ルール・セット評価が合格の場合に監査レコードを作成します。

  • DBMS_MACUTL.G_RULESET_AUDIT_FAIL + DBMS_MACUTL.G_RULESET_AUDIT_SUCCESS: ルール・セット評価が合格と不合格のどちらの場合も監査レコードを作成します。

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

fail_options

エラーをレポートするオプション:

  • DBMS_MACUTL.G_RULESET_FAIL_SHOW: エラー・メッセージを表示します。

  • DBMS_MACUTL.G_RULESET_FAIL_SILENT: エラー・メッセージを表示しません。

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

fail_message

失敗を示すエラー・メッセージ。大/小文字混在の最大80文字で、fail_codeで指定した失敗コードに関連付けます。

fail_code

-20000から-20999または20000から20999の範囲の数値を入力し、fail_messageパラメータに関連付けます。

handler_options

次の設定のいずれかを選択します。

  • DBMS_MACUTL.G_RULESET_HANDLER_OFF: エラー処理を無効にします。

  • DBMS_MACUTL.G_RULESET_HANDLER_FAIL: ルール・セット失敗時にハンドラをコールします。

  • DBMS_MACUTL.G_RULESET_HANDLER_SUCCESS: ルール・セット成功時にハンドラをコールします。

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

handler

カスタム・イベント・ハンドラ・ロジックを定義するPL/SQLファンクションまたはプロシージャの名前。

is_static

オプションです。SQL文によってアクセスされる際に、ルール・セットが評価される頻度を決定します。

  • TRUE: ルール・セットはユーザー・セッション中に1回、評価されます。その後、値は再利用されます。

  • FALSE: SQL文がアクセスするたびに、ルール・セットは評価されます(デフォルト)。

BEGIN
 DBMS_MACADM.UPDATE_RULE_SET(
  rule_set_name    => 'Limit_DBA_Access', 
  description      => 'DBA access through predefined processes', 
  enabled          => DBMS_MACUTL.G_YES,
  eval_options     => DBMS_MACUTL.G_RULESET_EVAL_ANY,
  audit_options    => DBMS_MACUTL.G_RULESET_AUDIT_FAIL,
  fail_options     => DBMS_MACUTL.G_RULESET_FAIL_SHOW,
  fail_message     => 'Access denied!',
  fail_code        => 20900,
  handler_options  => DBMS_MACUTL.G_RULESET_HANDLER_OFF, 
  handler          => '',
  is_static        =  TRUE);
END;
/

Oracle Database VaultのPL/SQLルール・セット・ファンクション

Oracle Database Vaultには、ルール・セットが保護するSQL文を検査するために、ルール・セットで使用するファンクションが用意されています。

たとえば、コマンド・ルールでルール・セットによりSELECT ON HR.EMPLOYEESを保護する場合、ルール式でこれらのファンクションを使用して、より詳細な情報に基づいた判断を下すことができます。

表14-12にデフォルトのルール・ファンクションを示します。

表14-12 インストールされるOracle Database VaultのPL/SQLルール・セット・ファンクション

ルール・セット・ファンクション 説明

DVSYS.DV_SYSEVENTファンクション

ルール・セットを起動するシステム・イベントを返します。

DVSYS.DV_LOGIN_USERファンクション

ログイン・ユーザー名を返します。

DVSYS.DV_INSTANCE_NUMファンクション

データベース・インスタンス番号を返します。

DVSYS.DV_DATABASE_NAMEファンクション

データベース名を返します。

DVSYS.DV_DICT_OBJ_TYPEファンクション

データベース操作が発生したディクショナリ・オブジェクトのタイプ(表、プロシージャ、ビューなど)を返します。

DVSYS.DV_DICT_OBJ_OWNERファンクション

データベース操作が発生したディクショナリ・オブジェクトの所有者を返します。

DVSYS.DV_DICT_OBJ_NAMEファンクション

データベース操作が発生したディクショナリ・オブジェクトの名前を返します。

DVSYS.DV_SQL_TEXTファンクション

操作で使用されるデータベース文のSQLテキストの最初の4000文字を返します。

DVSYS.DV_SYSEVENTファンクション

DV_SYSEVENTファンクションは、ルール・セットを起動するシステム・イベントを返します。

イベント名は、SQL文の構文のものと同じで、INSERTCREATEなどです。戻り型はVARCHAR2です。

構文

DVSYS.DV_SYSEVENT ()
RETURN VARCHAR2;

パラメータ

ありません

BEGIN 
 DBMS_MACADM.CREATE_RULE(
  rule_name => 'Get System Event Firing the Maintenance Rule Set',
  rule_expr => 'DVSYS.DV_SYSEVENT = ''CREATE''');
END;
/

DVSYS.DV_LOGIN_USERファンクション

DV_LOGIN_USERファンクションは、ログイン・ユーザー名をVARCHAR2データ型で返します。

構文

DVSYS.DV_LOGIN_USER ()
RETURN VARCHAR2;

パラメータ

ありません

BEGIN 
 DBMS_MACADM.CREATE_RULE(
  rule_name => 'Check System Login User Name',
  rule_expr => 'DVSYS.DV_LOGIN_USER = ''SEBASTIAN''');
END;
/

DVSYS.DV_INSTANCE_NUMファンクション

DV_INSTANCE_NUMファンクションは、データベース・インスタンス番号をNUMBERデータ型で返します。

構文

DVSYS.DV_INSTANCE_NUM ()
RETURN NUMBER;

パラメータ

ありません

BEGIN 
 DBMS_MACADM.CREATE_RULE(
  rule_name => 'Check Database Instance Number',
  rule_expr => 'DVSYS.DV_INSTANCE_NUM BETWEEN 6 AND 9');
END;
/

DVSYS.DV_DATABASE_NAMEファンクション

DV_DATABASE_NAMEファンクションは、データベース名をVARCHAR2データ型で返します。

構文

DVSYS.DV_DATABASE_NAME ()
RETURN VARCHAR2;

パラメータ

ありません

BEGIN 
 DBMS_MACADM.CREATE_RULE(
  rule_name => 'Check Database Name',
  rule_expr => 'DVSYS.DV_DATABASE_NAME = ''ORCL''');
END;
/

DVSYS.DV_DICT_OBJ_TYPEファンクション

DV_DICT_OBJ_TYPEファンクションは、データベース操作が行われたディクショナリ・オブジェクトのタイプを返します。

たとえば、このファンクションが返すディクショナリ・オブジェクトは、表、プロシージャ、ビューです。戻り型はVARCHAR2です。

構文

DVSYS.DV_DICT_OBJ_TYPE ()
RETURN VARCHAR2;

パラメータ

ありません

BEGIN 
 DBMS_MACADM.CREATE_RULE(
  rule_name => 'Check Dictionary Object Type',
  rule_expr => 'DVSYS.DV_DICT_OBJ_TYPE IN (''TABLE'', ''VIEW'')');
END;
/

DVSYS.DV_DICT_OBJ_OWNERファンクション

DV_DICT_OBJ_OWNERファンクションは、データベース操作が発生したディクショナリ・オブジェクトの所有者の名前を返します。

戻り型はVARCHAR2です。

構文

DVSYS.DV_DICT_OBJ_OWNER ()
RETURN VARCHAR2;

パラメータ

ありません

BEGIN 
 DBMS_MACADM.CREATE_RULE(
  rule_name => 'Check Dictionary Object Owner',
  rule_expr => 'DVSYS.DV_DICT_OBJ_OWNER = ''JSMITH''');
END;
/

DVSYS.DV_DICT_OBJ_NAMEファンクション

DV_DICT_OBJ_NAMEファンクションは、データベース操作が発生したディクショナリ・オブジェクトの名前を返します。

戻り型はVARCHAR2です。

構文

DVSYS.DV_DICT_OBJ_NAME ()
RETURN VARCHAR2;

パラメータ

ありません

BEGIN 
 DBMS_MACADM.CREATE_RULE(
  rule_name => 'Check Dictionary Object Name',
  rule_expr => 'DVSYS.DV_DICT_OBJ_NAME = ''SALES''');
END;
/

DVSYS.DV_SQL_TEXTファンクション

DV_SQL_TEXTファンクションは、操作で使用されるデータベース文のSQLテキストの最初の4000文字を返します。

戻り型はVARCHAR2です。

構文

DVSYS.DV_SQL_TEXT ()
RETURN VARCHAR2;

パラメータ

ありません

BEGIN 
 DBMS_MACADM.CREATE_RULE(
  rule_name => 'Check SQL Text',
  rule_expr => 'DVSYS.DV_SQL_TEXT = ''SELECT SALARY FROM HR.EMPLOYEES''');
END;
/