16 Oracle Database Vaultルール・セットのAPI
DBMS_MACADM
PL/SQLパッケージをおよび一連のOracle Database Vaultルール・ファンクションを使用すると、ルール・セットを管理できます。
- DBMS_MACADMルール・セット・プロシージャ
DBMS_MACADM
ルール・セット・プロシージャにより、ルール・セット、およびこれらのルール・セット内に入れられる個々のルールを構成できます。 - Oracle Database VaultのPL/SQLルール・セット・ファンクション
Oracle Database Vaultには、ルール・セットで保護されるSQL文を検査するためにルール・セットで使用されるファンクションが用意されています。
16.1 DBMS_MACADMルール・セットのプロシージャ
DBMS_MACADM
ルール・セット・プロシージャにより、ルール・セット、およびこれらのルール・セット内に入れられる個々のルールを構成できます。
DV_OWNER
ロールまたはDV_ADMIN
ロールを付与されているユーザーのみがこれらのプロシージャを使用できます。
- ADD_RULE_TO_RULE_SETプロシージャ
ADD_RULE_TO_RULE_SET
プロシージャは、ルールをルール・セットに追加し、ルール・セットの評価時にルールをチェックできるようにします。 - CREATE_RULEプロシージャ
CREATE_RULE
プロシージャは、後でルール・セットに追加できるコマンド・ルールを作成します。 - CREATE_RULE_SETプロシージャ
CREATE_RULE_SET
プロシージャはルール・セットを作成します。 - DELETE_RULEプロシージャ
DELETE_RULE
プロシージャはルールを削除します。 - DELETE_RULE_FROM_RULE_SETプロシージャ
DELETE_RULE_FROM_RULE_SET
プロシージャは、ルールをルール・セットから削除します。 - DELETE_RULE_SETプロシージャ
DELETE_RULE_SET
プロシージャはルール・セットを削除します。 - RENAME_RULEプロシージャ
RENAME_RULE
プロシージャは、ルールの名前を変更し、その名前変更は、そのルールが使用されているすべての箇所に反映されます - RENAME_RULE_SETプロシージャ
RENAME_RULE_SET
プロシージャは、ルール・セットの名前を変更し、その名前変更は、そのルール・セットが使用されているすべての箇所に反映されます。 - UPDATE_RULEプロシージャ
UPDATE_RULE
プロシージャはルールを更新します。 - UPDATE_RULE_SETプロシージャ
UPDATE_RULE_SET
プロシージャはルール・セットを更新します。
16.1.1 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, scope IN NUMBER DEFAULT);
パラメータ
表16-1 ADD_RULE_TO_RULE_SETのパラメータ
パラメータ | 説明 |
---|---|
|
ルール・セット名。 現行のデータベース・インスタンスで既存のルール・セットを確認するには、「DBA_DV_RULE_SETビュー」で説明されている |
|
ルール・セットに追加するルール。 既存のルールを確認するには、「DBA_DV_RULEビュー」で説明されている ルール・セットに関連付けられているルールを確認するには、「DBA_DV_RULEビュー」で説明されている |
|
このリリースには適用されませんが、 |
|
オプション。ルール・セットの評価時にルールをチェックする必要があるかどうかを判断します。使用される値は、次のとおりです。
詳細は、表21-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; /
親トピック: DBMS_MACADMルール・セットのプロシージャ
16.1.2 CREATE_RULEプロシージャ
CREATE_RULE
プロシージャは、後でルール・セットに追加できるコマンド・ルールを作成します。
マルチテナント環境では、共通およびローカルの両方のルールを作成できます。
構文
DBMS_MACADM.CREATE_RULE( rule_name IN VARCHAR2, rule_expr IN VARCHAR2 scope IN NUMBER DEFAULT);
パラメータ
表16-2 CREATE_RULEのパラメータ
パラメータ | 説明 |
---|---|
|
ルール名(大/小文字混在で最大128文字)。空白を使用できます。 現行のデータベース・インスタンスで既存のルールを確認するには、「DBA_DV_RULEビュー」で説明されている ルール・セットに関連付けられているルールを確認するには、「DBA_DV_RULE_SET_RULEビュー」で説明されている |
|
PL/SQL 式に引用符が含まれる場合、二重引用符は使用しないでください。その場合は、2つの一重引用符を使用します。式全体を一重引用符で囲んでください。たとえば: 'TO_CHAR(SYSDATE,''HH24'') = ''12''' ルール式の詳細は、「新規ルールの作成」を参照してください。 |
|
マルチテナント環境の場合は、このプロシージャの実行方法を決定します。デフォルトはローカルです。オプションは次のとおりです。
|
例
次の例では、現行セッション・ユーザーがSYSADM
であるかどうかをチェックするローカル・ルール式の作成方法を示します。このプロシージャを実行するユーザーは、ルールおよびそのルール・セットが存在するのと同じPDBにいる必要があります。既存のPDBを確認するには、show pdbs
コマンドを実行します。ルールおよびルール・セットはローカルである必要があります。
BEGIN DBMS_MACADM.CREATE_RULE( rule_name => 'Check UPDATE operations', rule_expr =>'SYS_CONTEXT(''USERENV'',''SESSION_USER'') = ''SYSADM''', scope => DBMS_MACUTL.G_SCOPE_LOCAL); END; /
この例では、前の例のマルチテナント環境共通バージョンを示します。このプロシージャを実行するユーザーはCDBルートにいる必要があり、ルールおよびその関連付けられたルール・セットは共通である必要があります。ルールは、アプリケーション・ルートに存在することになります。
BEGIN DBMS_MACADM.CREATE_RULE( rule_name => 'Check UPDATE operations', rule_expr =>'SYS_CONTEXT(''USERENV'',''SESSION_USER'') = ''SYSADM''', scope => DBMS_MACUTL.G_SCOPE_COMMON); END; /
この例では、パブリック・スタンドアロン・ファンクション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; /
親トピック: DBMS_MACADMルール・セットのプロシージャ
16.1.3 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, scope IN NUMBER DEFAULT);
パラメータ
表16-3 CREATE_RULE_SETのパラメータ
パラメータ | 説明 |
---|---|
|
ルール・セット名(大/小文字混在で最大128文字)。空白を使用できます。 現行のデータベース・インスタンスで既存のルール・セットを確認するには、「DBA_DV_RULE_SETビュー」で説明されている |
|
ルール・セットの目的の説明(大/小文字混在で最大1024文字)。 |
|
|
|
ルール・セットに複数のルールを割り当てる場合は、次の設定のいずれかを入力します。
|
|
次の設定のいずれかを選択します。
|
|
エラーをレポートするオプション:
|
|
大/小文字混在の最大80文字で、失敗を示すエラー・メッセージを入力し、 |
|
-20000から-20999または20000から20999の範囲の数値を入力し、 |
|
次の設定のいずれかを選択します。
|
|
カスタム・イベント・ハンドラ・ロジックを定義するPL/SQLファンクションまたはプロシージャの名前。 |
|
オプション。アクセスされる際にルール・セットが評価される頻度を決定します。デフォルトは
|
|
マルチテナント環境の場合は、このプロシージャの実行方法を決定します。デフォルトはローカルです。オプションは次のとおりです。
|
例
次の例では、ルール・セット自体でtrueに評価されるには少なくとも1つのルールでtrueに評価される必要があるように設定されている、失敗した試みと成功した試みの両方を監査する、有効化されたルール・セットを作成します。エラー・メッセージは表示しませんが、失敗の追跡に失敗コード20461を使用します。また、ルール・セットに対して違反がある場合は、ハンドラを使用して適切なユーザーに電子メール・アラートを送信します。
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; /
このルール・セットでは、失敗メッセージや失敗コードは使用されず、ハンドラも使用されません。このルール・セットはマルチテナント環境のアプリケーション・ルートに存在することになるため、このプロシージャを実行するユーザーは、アプリケーション・ルートにいる必要があります。このルール・セットに関連付けられているルールまたはコマンド・ルールは、共通である必要があります。
BEGIN DBMS_MACADM.CREATE_RULE_SET( rule_set_name => 'Check_HR_Access', description => 'Checks for failed access attempts to the HR schema', 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_SILENT, fail_message => '', fail_code => '', handler_options => DBMS_MACUTL.G_RULESET_HANDLER_OFF, handler => '', is_static => TRUE, scope => DBMS_MACUTL.G_SCOPE_COMMON); END; /
このルール・セットは、前のルール・セットのローカル・バージョンです。このルール・セットを作成するユーザーは、このルール・セットが存在することになるPDBにいる必要があります。既存のPDBを確認するには、DBA_PDBS
データ・ディクショナリ・ビューを問い合せます。このルール・セットに関連付けられているルールまたはコマンド・ルールは、ローカルである必要があります。
BEGIN DBMS_MACADM.CREATE_RULE_SET( rule_set_name => 'Check_HR_Access', description => 'Checks for failed access attempts to the HR schema', 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_SILENT, fail_message => '', fail_code => '', handler_options => DBMS_MACUTL.G_RULESET_HANDLER_OFF, handler => '', is_static => TRUE, scope => DBMS_MACUTL.G_SCOPE_LOCAL); END; /
関連項目:
親トピック: DBMS_MACADMルール・セットのプロシージャ
16.1.4 DELETE_RULEプロシージャ
DELETE_RULE
プロシージャはルールを削除します。
構文
DBMS_MACADM.DELETE_RULE( rule_name IN VARCHAR2);
パラメータ
表16-4 DELETE_RULEのパラメータ
パラメータ | 説明 |
---|---|
|
ルール名。 現行のデータベース・インスタンスで既存のルールを確認するには、「DBA_DV_RULEビュー」で説明されている ルール・セットに関連付けられているルールを確認するには、「DBA_DV_RULE_SET_RULEビュー」で説明されている |
例
EXEC DBMS_MACADM.DELETE_RULE('Check UPDATE operations');
親トピック: DBMS_MACADMルール・セットのプロシージャ
16.1.5 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);
パラメータ
表16-5 DELETE_RULE_FROM_RULE_SETのパラメータ
パラメータ | 説明 |
---|---|
|
ルール・セット名。 現行のデータベース・インスタンスで既存のルール・セットを確認するには、「DBA_DV_RULE_SETビュー」で説明されている |
|
ルール・セットから削除するルール。 現行のデータベース・インスタンスで既存のルールを確認するには、「DBA_DV_RULEビュー」で説明されている ルール・セットに関連付けられているルールを確認するには、「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; /
親トピック: DBMS_MACADMルール・セットのプロシージャ
16.1.6 DELETE_RULE_SETプロシージャ
DELETE_RULE_SET
プロシージャはルール・セットを削除します。
構文
DBMS_MACADM.DELETE_RULE_SET( rule_set_name IN VARCHAR2);
パラメータ
表16-6 DELETE_RULE_SETのパラメータ
パラメータ | 説明 |
---|---|
|
ルール・セット名。 現行のデータベース・インスタンスで既存のルール・セットを確認するには、「DBA_DV_RULE_SETビュー」で説明されている |
例
EXEC DBMS_MACADM.DELETE_RULE_SET('Limit_DBA_Access');
親トピック: DBMS_MACADMルール・セットのプロシージャ
16.1.7 RENAME_RULEプロシージャ
RENAME_RULE
プロシージャは、ルールの名前を変更し、その名前変更は、そのルールが使用されているすべての箇所に反映されます
構文
DBMS_MACADM.RENAME_RULE( rule_name IN VARCHAR2, new_name IN VARCHAR2, scope IN NUMBER DEFAULT);
パラメータ
表16-7 RENAME_RULEのパラメータ
パラメータ | 説明 |
---|---|
|
現在のルール名。 現行のデータベース・インスタンスで既存のルールを確認するには、「DBA_DV_RULEビュー」で説明されている ルール・セットに関連付けられているルールを確認するには、「DBA_DV_RULE_SET_RULEビュー」で説明されている |
|
新しいルール名(大/小文字混在で最大128文字)。 |
|
マルチテナント環境の場合は、このプロシージャの実行方法を決定します。デフォルトはローカルです。オプションは次のとおりです。
|
例
BEGIN DBMS_MACADM.RENAME_RULE( rule_name => 'Check UPDATE operations', new_name => 'Check Sector 2 Processes'); END; /
親トピック: DBMS_MACADMルール・セットのプロシージャ
16.1.8 RENAME_RULE_SETプロシージャ
RENAME_RULE_SET
プロシージャは、ルール・セットの名前を変更し、その名前変更は、そのルール・セットが使用されているすべての箇所に反映されます。
構文
DBMS_MACADM.RENAME_RULE_SET( rule_set_name IN VARCHAR2, new_name IN VARCHAR2, scope IN NUMBER DEFAULT);
パラメータ
表16-8 RENAME_RULE_SETのパラメータ
パラメータ | 説明 |
---|---|
|
現在のルール・セット名。 現行のデータベース・インスタンスで既存のルール・セットを確認するには、「DBA_DV_RULE_SETビュー」で説明されている |
|
新しいルール・セット名(大/小文字混在で最大128文字)。空白を使用できます。 |
|
マルチテナント環境の場合は、このプロシージャの実行方法を決定します。デフォルトはローカルです。オプションは次のとおりです。
|
例
BEGIN DBMS_MACADM.RENAME_RULE_SET( rule_set_name => 'Limit_DBA_Access', new_name => 'Limit Sector 2 Access'); END; /
親トピック: DBMS_MACADMルール・セットのプロシージャ
16.1.9 UPDATE_RULEプロシージャ
UPDATE_RULE
プロシージャはルールを更新します。
構文
DBMS_MACADM.UPDATE_RULE( rule_name IN VARCHAR2, rule_expr IN VARCHAR2);
パラメータ
表16-9 UPDATE_RULEのパラメータ
パラメータ | 説明 |
---|---|
|
ルール名。 現行のデータベース・インスタンスで既存のルールを確認するには、「DBA_DV_RULEビュー」で説明されている ルール・セットに関連付けられているルールを確認するには、「DBA_DV_RULE_SET_RULEビュー」で説明されている |
|
PL/SQL 式に引用符が含まれる場合、二重引用符は使用しないでください。その場合は、2つの一重引用符を使用します。式全体を一重引用符で囲んでください。たとえば: 'TO_CHAR(SYSDATE,''HH24'') = ''12''' ルール式の詳細は、「新規ルールの作成」を参照してください。 既存のルール式を確認するには、 |
例
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; /
親トピック: DBMS_MACADMルール・セットのプロシージャ
16.1.10 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);
パラメータ
表16-10 UPDATE_RULE_SETのパラメータ
パラメータ | 説明 |
---|---|
|
ルール・セット名。 現行のデータベース・インスタンスで既存のルール・セットを確認するには、「DBA_DV_RULE_SETビュー」で説明されている |
|
ルール・セットの目的の説明(大/小文字混在で最大1024文字)。 |
|
|
|
ルール・セットに複数のルールを割り当てる場合は、次の設定のいずれかを入力します。
|
|
次の設定のいずれかを選択します。
|
|
エラーをレポートするオプション:
|
|
失敗を示すエラー・メッセージ。大/小文字混在の最大80文字で、 |
|
-20000から-20999または20000から20999の範囲の数値を入力し、 |
|
次の設定のいずれかを選択します。
|
|
カスタム・イベント・ハンドラ・ロジックを定義するPL/SQLファンクションまたはプロシージャの名前。 |
|
オプション。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; /
親トピック: DBMS_MACADMルール・セットのプロシージャ
16.2 Oracle Database VaultのPL/SQLルール・セット・ファンクション
Oracle Database Vaultには、ルール・セットで保護されるSQL文を検査するためにルール・セットで使用されるファンクションが用意されています。
- DV_SYSEVENTファンクション
DV_SYSEVENT
ファンクションは、ルール・セットを起動するシステム・イベントを返します。 - DV_LOGIN_USERファンクション
DV_LOGIN_USER
ファンクションは、セッション・ユーザー名をVARCHAR2
データ型で返します。 - DV_INSTANCE_NUMファンクション
DV_INSTANCE_NUM
ファンクションは、データベース・インスタンス番号をNUMBER
データ型で返します。 - DV_DATABASE_NAMEファンクション
DV_DATABASE_NAME
ファンクションは、データベース名をVARCHAR2
データ型で返します。 - DV_DICT_OBJ_TYPEファンクション
DV_DICT_OBJ_TYPE
ファンクションは、データベース操作が発生したディクショナリ・オブジェクトのタイプを返します。 - DV_DICT_OBJ_OWNERファンクション
DV_DICT_OBJ_OWNER
ファンクションは、データベース操作が発生したディクショナリ・オブジェクトの所有者の名前を返します。 - DV_DICT_OBJ_NAMEファンクション
DV_DICT_OBJ_NAME
ファンクションは、データベース操作が発生したディクショナリ・オブジェクトの名前を返します。 - DV_SQL_TEXTファンクション
DV_SQL_TEXT
ファンクションは、操作で使用されるデータベース文のSQLテキストの最初の4000文字を返します。
16.2.1 DV_SYSEVENTファンクション
DV_SYSEVENT
ファンクションは、ルール・セットを起動するシステム・イベントを返します。
イベント名は、SQL文の構文のものと同じで、INSERT
やCREATE
などです。戻り型はVARCHAR2
です。
構文
DV_SYSEVENT () RETURN VARCHAR2;
パラメータ
なし
例
BEGIN DBMS_MACADM.CREATE_RULE( rule_name => 'Get System Event Firing the Maintenance Rule Set', rule_expr => 'DV_SYSEVENT = ''CREATE'''); END; /
16.2.2 DV_LOGIN_USERファンクション
DV_LOGIN_USER
ファンクションは、セッション・ユーザー名をVARCHAR2
データ型で返します。
構文
DV_LOGIN_USER () RETURN VARCHAR2;
パラメータ
なし
例
BEGIN DBMS_MACADM.CREATE_RULE( rule_name => 'Check Session User Name', rule_expr => 'DV_LOGIN_USER = ''SEBASTIAN'''); END; /
16.2.3 DV_INSTANCE_NUMファンクション
DV_INSTANCE_NUM
ファンクションは、データベース・インスタンス番号をNUMBER
データ型で返します。
構文
DV_INSTANCE_NUM () RETURN NUMBER;
パラメータ
なし
例
BEGIN DBMS_MACADM.CREATE_RULE( rule_name => 'Check Database Instance Number', rule_expr => 'DV_INSTANCE_NUM BETWEEN 6 AND 9'); END; /
16.2.4 DV_DATABASE_NAMEファンクション
DV_DATABASE_NAME
ファンクションは、データベース名をVARCHAR2
データ型で返します。
構文
DV_DATABASE_NAME () RETURN VARCHAR2;
パラメータ
なし
例
BEGIN DBMS_MACADM.CREATE_RULE( rule_name => 'Check Database Name', rule_expr => 'DV_DATABASE_NAME = ''ORCL'''); END; /
16.2.5 DV_DICT_OBJ_TYPEファンクション
DV_DICT_OBJ_TYPE
ファンクションは、データベース操作が発生したディクショナリ・オブジェクトのタイプを返します。
たとえば、戻されるディクショナリ・オブジェクトは表、プロシージャまたはビューです。戻り型はVARCHAR2
です。
構文
DV_DICT_OBJ_TYPE () RETURN VARCHAR2;
パラメータ
なし
例
BEGIN DBMS_MACADM.CREATE_RULE( rule_name => 'Check Dictionary Object Type', rule_expr => 'DV_DICT_OBJ_TYPE IN (''TABLE'', ''VIEW'')'); END; /
16.2.6 DV_DICT_OBJ_OWNERファンクション
DV_DICT_OBJ_OWNER
ファンクションは、データベース操作が発生したディクショナリ・オブジェクトの所有者の名前を返します。
戻り型はVARCHAR2
です。
構文
DV_DICT_OBJ_OWNER () RETURN VARCHAR2;
パラメータ
なし
例
BEGIN DBMS_MACADM.CREATE_RULE( rule_name => 'Check Dictionary Object Owner', rule_expr => 'DV_DICT_OBJ_OWNER = ''JSMITH'''); END; /
16.2.7 DV_DICT_OBJ_NAMEファンクション
DV_DICT_OBJ_NAME
ファンクションは、データベース操作が発生したディクショナリ・オブジェクトの名前を返します。
戻り型はVARCHAR2
です。
構文
DV_DICT_OBJ_NAME () RETURN VARCHAR2;
パラメータ
なし
例
BEGIN DBMS_MACADM.CREATE_RULE( rule_name => 'Check Dictionary Object Name', rule_expr => 'DV_DICT_OBJ_NAME = ''SALES'''); END; /