プライマリ・コンテンツに移動
Oracle® Database Vault管理者ガイド
11gリリース2 (11.2)
B56297-10
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

12 DBMS_MACADMパッケージの使用方法

この章の内容は次のとおりです。

DBMS_MACADMパッケージについて

DBMS_MACADMパッケージのプロシージャおよびファンクションを使用すると、一般にOracle Database Vault Administratorで構成されるレルム、ファクタ、ルール・セット、コマンド・ルール、セキュア・アプリケーション・ロールおよびOracle Label Securityポリシーを構成するアプリケーションを作成できます。

DBMS_MACADMパッケージは、DV_ADMINロールまたはDV_OWNERロールを付与されているユーザーのみが使用できます。

DBMS_MACADMパッケージのプロシージャおよびファンクションで使用されるパラメータの多くでは、DBMS_MACUTLパッケージで使用可能な定数を使用できます。詳細は、「DBMS_MACUTLの定数」を参照してください。

また、Oracle Database Vaultには、DBMS_MACADMパッケージとともに使用できる一連のPL/SQLインタフェースが用意されています。詳細は、第15章「Oracle Database Vault PL/SQLインタフェースの使用方法」を参照してください。

DBMS_MACADMのレルム・プロシージャ

表12-1に、レルムの構成に使用できるDBMS_MACADMパッケージのプロシージャを示します。これらのプロシージャで使用できる定数の詳細は、表14-1を参照してください。

レルムの詳細は、第4章「レルムの構成」を参照してください。また、レルム・プロシージャとともに使用できる一連の汎用ユーティリティ・プロシージャは、第14章「DBMS_MACUTLパッケージの使用方法」を参照してください。

表12-1 DBMS_MACADMのレルム構成プロシージャ

プロシージャ 説明

ADD_AUTH_TO_REALMプロシージャ


所有者または参加者としてレルムにアクセスする権限をユーザーまたはロールに付与します。

ADD_OBJECT_TO_REALMプロシージャ


レルム保護に一連のオブジェクトを登録します。

CREATE_REALMプロシージャ


レルムを作成します。

DELETE_AUTH_FROM_REALMプロシージャ


レルムにアクセスするためのユーザーまたはロールの認可を削除します。

DELETE_OBJECT_FROM_REALMプロシージャ


レルム保護から一連のオブジェクトを削除します。

DELETE_REALMプロシージャ


レルムを削除します。

DELETE_REALM_CASCADEプロシージャ


レルムおよび関連するDatabase Vault構成情報を削除します。

RENAME_REALMプロシージャ


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

UPDATE_REALMプロシージャ


レルムを更新します。

UPDATE_REALM_AUTHプロシージャ


レルムにアクセスするためのユーザーまたはロールの認可を更新します。


ADD_AUTH_TO_REALMプロシージャ

ADD_AUTH_TO_REALMプロシージャは、所有者または参加者としてレルムにアクセスする権限をユーザーまたはロールに付与します。レルム認可の詳細は、「レルム認可の定義」を参照してください。

オプションで、認可に進む前にチェックする必要のあるルール・セットを指定できます。

構文

DBMS_MACADM.ADD_AUTH_TO_REALM(
  realm_name    IN VARCHAR2, 
  grantee       IN VARCHAR2, 
  rule_set_name IN VARCHAR2, 
  auth_options  IN NUMBER); 

パラメータ

表12-2 ADD_AUTH_TO_REALMのパラメータ

パラメータ 説明

realm_name

レルム名。

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

grantee

所有者または参加者として認可するユーザーまたはロール名。

現行のデータベース・インスタンスで既存のユーザーおよびロールを検索するには、『Oracle Databaseリファレンス』で説明されているDBA_USERSビューおよびDBA_ROLESビューに問い合せます。

特定のユーザーまたはロールの認可を検索するには、「DVSYS.DBA_DV_REALM_AUTHビュー」で説明されているDVA_DV_REALM_AUTHビューに問い合せます。

権限管理で使用されている既存のセキュア・アプリケーション・ロールを検索するには、DVSYS.DBA_DV_ROLEビューに問い合せます。どちらについても第16章「Oracle Database Vaultのデータ・ディクショナリ・ビュー」で説明します。

rule_set_name

オプションです。認可の前にチェックするルール・セット。ルール・セットの評価がTRUEの場合は、認可が許可されます。

使用可能なルール・セットを検索するには、「DVSYS.DBA_DV_RULE_SETビュー」で説明されているDVSYS.DBA_DV_RULE_SETビューに問い合せます。

auth_options

オプションです。レルムを認可する次のオプションのうち、1つを指定します。

  • DBMS_MACUTL.G_REALM_AUTH_PARTICIPANT: 参加者。権限が標準のOracle Database権限付与プロセスを使用して付与されている場合、このアカウントまたはロールは、レルムで保護されているオブジェクトに対するアクセス、操作および作成を行うためのシステム権限または直接権限を付与できます。

  • DBMS_MACUTL.G_REALM_AUTH_OWNER: 所有者。このアカウントまたはロールには、レルムの参加者と同じ権限と、レルム・セキュア・データベース・ロールを付与または取り消す認可があります。1つのレルムに複数の所有者を設定できます。

参加者および所有者の詳細は、「レルム認可の定義」を参照してください。


次の例では、ユーザーSYSADMをパフォーマンス統計レルムの参加者として認可します。デフォルトではユーザーが参加者として認可されるため、auth_optionsパラメータは省略できます。

BEGIN
 DBMS_MACADM.ADD_AUTH_TO_REALM(
  realm_name  => 'Performance Statistics Realm', 
  grantee     => 'SYSADM'); 
END;
/

次の例では、ユーザーSYSADMをパフォーマンス統計レルムの所有者として設定します。

BEGIN
 DBMS_MACADM.ADD_AUTH_TO_REALM(
  realm_name   => 'Performance Statistics Realm', 
  grantee      => 'SYSADM', 
  auth_options => DBMS_MACUTL.G_REALM_AUTH_OWNER);
END;
/

次の例では、ユーザーSYSADMをパフォーマンス統計レルムの所有者として認可する前に、構成アクセス・チェック・ルール・セットをトリガーします。

BEGIN
 DBMS_MACADM.ADD_AUTH_TO_REALM(
  realm_name    => 'Performance Statistics Realm', 
  grantee       => 'SYSADM', 
  rule_set_name => 'Check Conf Access',
  auth_options  => DBMS_MACUTL.G_REALM_AUTH_OWNER);
END;
/

ADD_OBJECT_TO_REALMプロシージャ

ADD_OBJECT_TO_REALMプロシージャは、レルム保護に一連のオブジェクトを登録します。

構文

DBMS_MACADM.ADD_OBJECT_TO_REALM(
  realm_name   IN VARCHAR2, 
  object_owner IN VARCHAR2, 
  object_name  IN VARCHAR2, 
  object_type  IN VARCHAR2); 

パラメータ

表12-3 ADD_OBJECT_TO_REALMのパラメータ

パラメータ 説明

realm_name

レルム名。

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

object_owner

レルムに追加するオブジェクトの所有者。ロールをレルムに追加する場合、ロールに所有者はいないため、ロールのオブジェクト所有者は%(すべて)として表示されます。

使用可能なユーザーを検索するには、『Oracle Databaseリファレンス』で説明されているDBA_USERSビューに問い合せます。

特定のユーザーまたはロールの認可を検索するには、「DVSYS.DBA_DV_REALM_AUTHビュー」で説明されているDVA_DV_REALM_AUTHビューに問い合せます。

object_name

オブジェクト名。(ワイルドカード%を使用できます。ワイルドカード%の例外は、「レルム・セキュア・オブジェクトの作成」の「オブジェクト名」を参照してください。)DBMS_MACUTL.G_ALL_OBJECT定数も使用できます。

使用可能なオブジェクトを検索するには、『Oracle Databaseリファレンス』で説明されているALL_OBJECTSビューに問い合せます。

既存のレルムによって保護されているオブジェクトを検索するには、「DVSYS.DBA_DV_REALM_OBJECTビュー」で説明されているDVSYS.DBA_DV_REALM_OBJECTビューに問い合せます。

object_type

TABLEINDEXROLEなどのオブジェクト・タイプ。(ワイルドカード%を使用できます。ワイルドカード%の例外は、「レルム・セキュア・オブジェクトの作成」の「オブジェクト・タイプ」を参照してください。)

DBMS_MACUTL.G_ALL_OBJECT定数も使用できます。


BEGIN
 DBMS_MACADM.ADD_OBJECT_TO_REALM(
  realm_name   => 'Performance Statistics Realm', 
  object_owner => '%', 
  object_name  => 'GATHER_SYSTEM_STATISTICS', 
  object_type  => 'ROLE'); 
END;
/

CREATE_REALMプロシージャ

CREATE_REALMプロシージャはレルムを作成します。レルムを作成した後で、次のプロシージャを使用してレルム定義を完了します。

  • ADD_OBJECT_TO_REALMプロシージャは、レルムに1つ以上のオブジェクトを登録します。

  • ADD_AUTH_TO_REALMプロシージャは、レルムに対してユーザーまたはロールを認可します。

構文

DBMS_MACADM.CREATE_REALM(
  realm_name    IN VARCHAR2, 
  description   IN VARCHAR2, 
  enabled       IN VARCHAR2, 
  audit_options IN NUMBER); 

パラメータ

表12-4 CREATE_REALMのパラメータ

パラメータ 説明

realm_name

レルム名(大/小文字混在で最大90文字)。

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

description

レルムの目的の説明(大/小文字混在で最大1024文字)。

enabled

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

audit_options

レルムを監査する次のオプションのうち、1つを指定します。

  • DBMS_MACUTL.G_REALM_AUDIT_OFF: レルムの監査を無効にします(デフォルト)。

  • DBMS_MACUTL.G_REALM_AUDIT_FAIL: 認可されていないユーザーがレルムによって保護されているオブジェクトの変更を試行するというようなレルム違反が発生した場合に、監査レコードが作成されます。

  • DBMS_MACUTL.G_REALM_AUDIT_SUCCESS: レルムで保護されているオブジェクトに対する認可されたアクティビティに関する監査レコードが作成されます。

  • DBMS_MACUTL.G_REALM_AUDIT_FAIL + DBMS_MACUTL.G_REALM_AUDIT_SUCCESS: レルムで保護されているオブジェクトに対する認可されたアクティビティおよび認可されていないアクティビティに関する監査レコードが作成されます。


BEGIN
 DBMS_MACADM.CREATE_REALM(
  realm_name    => 'Performance Statistics Realm', 
  description   => 'Realm to measure performance', 
  enabled       => DBMS_MACUTL.G_YES, 
  audit_options => DBMS_MACUTL.G_REALM_AUDIT_FAIL + DBMS_MACUTL.G_REALM_AUDIT_SUCCESS);
END; 
/

DELETE_AUTH_FROM_REALMプロシージャ

DELETE_AUTH_FROM_REALMプロシージャは、レルムにアクセスするためのユーザーまたはロールの認可を削除します。

構文

DBMS_MACADM.DELETE_AUTH_FROM_REALM(
  realm_name IN VARCHAR2,
  grantee    IN VARCHAR2);

パラメータ

表12-5 DELETE_AUTH_FROM_REALMのパラメータ

パラメータ 説明

realm_name

レルム名。

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

grantee

ユーザーまたはロール名。

特定のユーザーまたはロールの認可を検索するには、「DVSYS.DBA_DV_REALM_AUTHビュー」で説明されているDVA_DV_REALM_AUTHビューに問い合せます。


BEGIN
 DBMS_MACADM.DELETE_AUTH_FROM_REALM(
  realm_name => 'Performance Statistics Realm',
  grantee    => 'SYS');
END;
/

DELETE_OBJECT_FROM_REALMプロシージャ

DELETE_OBJECT_FROM_REALMプロシージャは、レルム保護から一連のオブジェクトを削除します。

構文

DBMS_MACADM.DELETE_OBJECT_FROM_REALM(
  realm_name   IN VARCHAR2, 
  object_owner IN VARCHAR2, 
  object_name  IN VARCHAR2, 
  object_type  IN VARCHAR2);

パラメータ

表12-6 DELETE_OBJECT_FROM_REALMのパラメータ

パラメータ 説明

realm_name

レルム名。

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

object_owner

レルムに追加されたオブジェクトの所有者。

使用可能なユーザーを検索するには、『Oracle Databaseリファレンス』で説明されているDBA_USERSビューに問い合せます。

object_name

オブジェクト名。(ワイルドカード%を使用できます。ワイルドカード%の例外は、「レルム・セキュア・オブジェクトの作成」の「オブジェクト名」を参照してください。)DBMS_MACUTL G_ALL_OBJECT定数も使用できます。

既存のレルムによって保護されているオブジェクトを検索するには、「DVSYS.DBA_DV_REALM_OBJECTビュー」で説明されているDVSYS.DBA_DV_REALM_OBJECTビューに問い合せます。

object_type

TABLEINDEXROLEなどのオブジェクト・タイプ。(ワイルドカード%を使用できます。ワイルドカード%の例外は、「レルム・セキュア・オブジェクトの作成」の「オブジェクト・タイプ」を参照してください。)

DBMS_MACUTL G_ALL_OBJECT定数も使用できます。


BEGIN
 DBMS_MACADM.DELETE_OBJECT_FROM_REALM(
  realm_name   => 'Performance Statistics Realm', 
  object_owner => 'SYS', 
  object_name  => 'GATHER_SYSTEM_STATISTICS', 
  object_type  => 'ROLE'); 
END;
/

DELETE_REALMプロシージャ

DELETE_REALMプロシージャはレルムを削除しますが、その関連オブジェクトおよび認可は削除しません。レルムを削除する前に、DVSYS.DBA_DV_REALM_OBJECTビューに問い合せて関連オブジェクトを検索できます。レルム関連のオブジェクトのリストを確認するには、DVSYS.DBA_DV_REALMビューに問い合せます。その認可を確認するには、DVSYS.DBA_DV_REALM_AUTHに問い合せます。これらのビューについては、第16章「Oracle Database Vaultのデータ・ディクショナリ・ビュー」で説明します。

関連付けられているオブジェクトおよび認可に加えてレルムを削除する場合は、「DELETE_REALM_CASCADEプロシージャ」を参照してください。

構文

DBMS_MACADM.DELETE_REALM(
  realm_name IN VARCHAR2); 

パラメータ

表12-7 DELETE_REALMのパラメータ

パラメータ 説明

realm_name

レルム名。

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


EXEC DBMS_MACADM.DELETE_REALM('Performance Statistics Realm'); 

DELETE_REALM_CASCADEプロシージャ

DELETE_REALM_CASCADEプロシージャは、認可されているユーザー(DVSYS.DBA_DV_REALM_AUTHビュー)および保護されているオブジェクト(DVSYS.DBA_DV_REALM_OBJECTビュー)を指定する関連Database Vault構成情報を含め、レルムを削除します。実際のデータベース・オブジェクトまたはユーザーは削除されません。レルム関連のオブジェクトのリストを確認するには、DVSYS.DBA_DV_REALMビューに問い合せます。その認可を確認するには、DVSYS.DBA_DV_REALM_AUTHに問い合せます。どちらについても第16章「Oracle Database Vaultのデータ・ディクショナリ・ビュー」で説明します。

構文

DBMS_MACADM.DELETE_REALM_CASCADE(
  realm_name IN VARCHAR2); 

パラメータ

表12-8 DELETE_REALM_CASCADEのパラメータ

パラメータ 説明

realm_name

レルム名。

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


EXEC DBMS_MACADM.DELETE_REALM_CASCADE('Performance Statistics Realm'); 

RENAME_REALMプロシージャ

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

構文

DBMS_MACADM.RENAME_REALM(
  realm_name IN VARCHAR2, 
  new_name   IN VARCHAR2); 

パラメータ

表12-9 RENAME_REALMのパラメータ

パラメータ 説明

realm_name

現在のレルム名。

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

new_name

新しいレルム名(大/小文字混在で最大90文字)。


BEGIN
 DBMS_MACADM.RENAME_REALM(
  realm_name => 'Performance Statistics Realm', 
  new_name   => 'Sector 2 Performance Statistics Realm');
END; 
/

UPDATE_REALMプロシージャ

UPDATE_REALMプロシージャはレルムを更新します。

構文

DBMS_MACADM.UPDATE_REALM(
  realm_name    IN VARCHAR2, 
  description   IN VARCHAR2, 
  enabled       IN VARCHAR2, 
  audit_options IN NUMBER DEFAULT NULL); 

パラメータ

表12-10 UPDATE_REALMのパラメータ

パラメータ 説明

realm_name

レルム名。

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

description

レルムの目的の説明(大/小文字混在で最大1024文字)。

enabled

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

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

audit_options

レルムを監査する次のオプションのうち、1つを指定します。

  • DBMS_MACUTL.G_REALM_AUDIT_OFF: レルムの監査を無効にします。

  • DBMS_MACUTL.G_REALM_AUDIT_FAIL: 認可されていないユーザーがレルムによって保護されているオブジェクトの変更を試行するというようなレルム違反が発生した場合に、監査レコードが作成されます。

  • DBMS_MACUTL.G_REALM_AUDIT_SUCCESS: レルムで保護されているオブジェクトに対する認可されたアクティビティに関する監査レコードが作成されます。

  • DBMS_MACUTL.G_REALM_AUDIT_FAIL + DBMS_MACUTL.G_REALM_AUDIT_SUCCESS: レルムで保護されているオブジェクトに対する認可されたアクティビティおよび認可されていないアクティビティに関する監査レコードが作成されます。

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


BEGIN
 DBMS_MACADM.UPDATE_REALM(
  realm_name    => 'Sector 2 Performance Statistics Realm', 
  description   => 'Realm to measure performance for Sector 2 applications', 
  enabled       => DBMS_MACUTL.G_YES, 
  audit_options => DBMS_MACUTL.G_REALM_AUDIT_FAIL + G_REALM_AUDIT_SUCCESS); 
END;
/

UPDATE_REALM_AUTHプロシージャ

UPDATE_REALM_AUTHプロシージャは、レルムにアクセスするためのユーザーまたはロールの認可を更新します。

構文

DBMS_MACADM.UPDATE_REALM_AUTH(
  realm_name    IN VARCHAR2, 
  grantee       IN VARCHAR2, 
  rule_set_name IN VARCHAR2, 
  auth_options  IN NUMBER); 

パラメータ

表12-11 UPDATE_REALM_AUTHのパラメータ

パラメータ 説明

realm_name

レルム名。

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

grantee

ユーザーまたはロール名。

使用可能なユーザーおよびロールを検索するには、『Oracle Databaseリファレンス』で説明されているDBA_USERSビューおよびDBA_ROLESビューに問い合せます。

特定のユーザーまたはロールの認可を検索するには、「DVSYS.DBA_DV_REALM_AUTHビュー」で説明されているDVA_DV_REALM_AUTHビューに問い合せます。

権限管理で使用されている既存のセキュア・アプリケーション・ロールを検索するには、「DVSYS.DBA_DV_ROLEビュー」で説明されているDVSYS.DBA_DV_ROLEビューに問い合せます。

rule_set_name

認可の前にチェックするオプションのルール・セット。ルール・セットの評価がTRUEの場合は、認可が許可されます。

使用可能なルール・セットを検索するには、DVSYS.DBA_DV_RULE_SETビューに問い合せます。ルール・セットに関連付けられているルールを検索するには、DBA_DB_RULE_SET_RULEビューに問い合せます。どちらについても第16章「Oracle Database Vaultのデータ・ディクショナリ・ビュー」で説明します。

auth_options

オプションです。レルムを認可する次のオプションのうち、1つを指定します。

  • DBMS_MACUTL.G_REALM_AUTH_PARTICIPANT: 参加者。権限が標準のOracle Database権限付与プロセスを使用して付与されている場合、このアカウントまたはロールは、レルムで保護されているオブジェクトに対するアクセス、操作および作成を行うためのシステム権限または直接権限を付与できます。

  • DBMS_MACUTL.G_REALM_AUTH_OWNER: 所有者。このアカウントまたはロールには、レルムの参加者と同じ権限と、レルム・セキュア・データベース・ロールを付与または取り消す認可があります。1つのレルムに複数の所有者を設定できます。

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


BEGIN
 DBMS_MACADM.UPDATE_REALM_AUTH(
  realm_name    => 'Sector 2 Performance Statistics Realm', 
  grantee       => 'SYSADM', 
  rule_set_name => 'Check Conf Access', 
  auth_options  => DBMS_MACUTL.G_REALM_AUTH_OWNER);
END; 
/

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

表12-12に、ルール・セットの構成に使用できるDBMS_MACADMパッケージのプロシージャを示します。


関連項目:


表12-12 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プロシージャ


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

SYNC_RULESプロシージャ


ルールを同期化します。

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

パラメータ

表12-13 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_SET_RULEビュー」で説明されているDVSYS.DBA_DV_RULE_SET_RULEを使用します。

rule_order

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

enabled

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

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

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

次のDBMS_MACUTLの定数も入力できます。

  • DBMS_MACUTL.G_YES (デフォルト)

  • DBMS_MACUTL.G_NO

詳細は、表14-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);

パラメータ

表12-14 CREATE_RULEのパラメータ

パラメータ 説明

rule_name

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

現行のデータベース・インスタンスで既存のルールを検索するには、「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'''

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


BEGIN
 DBMS_MACADM.CREATE_RULE(
  rule_name  => 'Check UPDATE operations', 
  rule_expr  =>'SYS_CONTEXT(''USERENV'',''SESSION_USER'') = ''SYSADM''');
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 FALSE);

パラメータ

表12-15 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)では無効になります。デフォルトはYです。

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     => 2,
  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;
/

DELETE_RULEプロシージャ

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

構文

DBMS_MACADM.DELETE_RULE(
  rule_name IN VARCHAR2); 

パラメータ

表12-16 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);

パラメータ

表12-17 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); 

パラメータ

表12-18 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); 

パラメータ

表12-19 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

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


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

パラメータ

表12-20 RENAME_RULE_SETのパラメータ

パラメータ 説明

rule_set_name

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

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

new_name

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


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

SYNC_RULESプロシージャ

SYNC_RULESプロシージャは、Oracle Database Vaultルールとアドバンスト・キューイング・ルール・エンジンの同期をとります。ADD_RULE_TO_RULESETDELETE_RULEUPDATE_RULEの各操作のロールバック後には、この操作を即時実行する必要があります。

構文

DBMS_MACADM.SYNC_RULES(); 

パラメータ

なし。

EXEC DBMS_MACADM.SYNC_RULES(); 

UPDATE_RULEプロシージャ

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

構文

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

パラメータ

表12-21 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); 

パラメータ

表12-22 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_AUDIT_FAIL,
  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のコマンド・ルール・プロシージャ

表12-23に、コマンド・ルールの構成に使用できるDBMS_MACADMパッケージのプロシージャを示します。

コマンド・ルールの詳細は、第6章「コマンド・ルールの構成」を参照してください。また、コマンド・ルール・プロシージャとともに使用できる一連の汎用ユーティリティ・プロシージャは、第14章「DBMS_MACUTLパッケージの使用方法」を参照してください。

表12-23 DBMS_MACADMのコマンド・ルール構成プロシージャ

プロシージャ 説明

CREATE_COMMAND_RULEプロシージャ


コマンド・ルールを作成し、ルール・セットに関連付けて、ルール・セットによるコマンド・ルールのルール・チェックが有効化されるようにします。

DELETE_COMMAND_RULEプロシージャ


コマンド・ルールの宣言を削除します。

UPDATE_COMMAND_RULEプロシージャ


コマンド・ルールの宣言を更新します。


CREATE_COMMAND_RULEプロシージャ

CREATE_COMMAND_RULEプロシージャはコマンド・ルールを作成し、ルール・セットに関連付けて、ルール・セットによるコマンド・ルールのルール・チェックが有効化されるようにします。

構文

DBMS_MACADM.CREATE_COMMAND_RULE(
  command         IN VARCHAR2, 
  rule_set_name   IN VARCHAR2, 
  object_owner    IN VARCHAR2, 
  object_name     IN VARCHAR2, 
  enabled         IN VARCHAR2);

パラメータ

表12-24 CREATE_COMMAND_RULEのパラメータ

パラメータ 説明

command

保護するSQL文。

次の項も参照してください。

rule_set_name

このコマンド・ルールに関連付けるルール・セットの名前。

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

object_owner

このコマンド・ルールを適用するデータベース・スキーマ。SELECTINSERTUPDATEDELETEおよびEXECUTE文以外は、ワイルドカード%を使用できます。

使用可能なユーザーを検索するには、『Oracle Databaseリファレンス』で説明されているDBA_USERSビューに問い合せます。

詳細は、「コマンド・ルールの作成および編集」の「オブジェクト所有者」を参照してください。

object_name

オブジェクト名。(ワイルドカード%を使用できます。コマンド・ルールで保護されるオブジェクトの詳細は、「コマンド・ルールの作成および編集」の「オブジェクト名」を参照してください。)

使用可能なオブジェクトを検索するには、『Oracle Databaseリファレンス』で説明されているALL_OBJECTSビューに問い合せます。

enabled

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


BEGIN
 DBMS_MACADM.CREATE_COMMAND_RULE(
  command         => 'SELECT', 
  rule_set_name   => 'Limit Sector 2 Access', 
  object_owner    => 'SYSADM', 
  object_name     => 'EMP_DATA', 
  enabled         => DBMS_MACUTL.G_YES);
END; 
/

DELETE_COMMAND_RULEプロシージャ

DELETE_COMMAND_RULEプロシージャは、コマンド・ルールの宣言を削除します。

構文

DBMS_MACADM.DELETE_COMMAND_RULE(
  command      IN VARCHAR2, 
  object_owner IN VARCHAR2, 
  object_name  IN VARCHAR2); 

パラメータ

表12-25 DELETE_COMMAND_RULEのパラメータ

パラメータ 説明

command

コマンド・ルールで保護されるSQL文。

使用可能なコマンド・ルールを検索するには、「DVSYS.DBA_DV_COMMAND_RULEビュー」で説明されているDVSYS.DBA_DV_COMMAND_RULEビューに問い合せます。

object_owner

このコマンド・ルールを適用するデータベース・スキーマ。

現行のデータベース・インスタンスで使用可能なユーザーを検索するには、『Oracle Databaseリファレンス』で説明されているDBA_USERSビューに問い合せます。

詳細は、「コマンド・ルールの作成および編集」の「オブジェクト所有者」を参照してください。

object_name

オブジェクト名。(ワイルドカード%を使用できます。コマンド・ルールで保護されるオブジェクトの詳細は、「コマンド・ルールの作成および編集」の「オブジェクト名」を参照してください。)

使用可能なオブジェクトを検索するには、『Oracle Databaseリファレンス』で説明されているALL_OBJECTSビューに問い合せます。


BEGIN
 DBMS_MACADM.DELETE_COMMAND_RULE(
  command      => 'SELECT', 
  object_owner => 'SYSADM', 
  object_name  => 'EMP_DATA'); 
END;
/

UPDATE_COMMAND_RULEプロシージャ

UPDATE_COMMAND_RULEプロシージャは、コマンド・ルールの宣言を更新します。

構文

DBMS_MACADM.UPDATE_COMMAND_RULE(
  command        IN VARCHAR2, 
  rule_set_name  IN VARCHAR2, 
  object_owner   IN VARCHAR2, 
  object_name    IN VARCHAR2, 
  enabled        IN VARCHAR2); 

パラメータ

表12-26 UPDATE_COMMAND_RULEのパラメータ

パラメータ 説明

command

保護するSQL文。

次の項も参照してください。

rule_set_name

このコマンド・ルールに関連付けるルール・セットの名前。

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

object_owner

このコマンド・ルールを適用するデータベース・スキーマ。

使用可能なユーザーを検索するには、『Oracle Databaseリファレンス』で説明されているDBA_USERSビューに問い合せます。詳細は、「コマンド・ルールの作成および編集」の「オブジェクト所有者」を参照してください。

object_name

オブジェクト名。(ワイルドカード%を使用できます。コマンド・ルールで保護されるオブジェクトの詳細は、「コマンド・ルールの作成および編集」の「オブジェクト名」を参照してください。)

使用可能なオブジェクトを検索するには、『Oracle Databaseリファレンス』で説明されているALL_OBJECTSビューに問い合せます。

enabled

DBMS_MACUTL.G_YES(Yes)では、コマンド・ルールが有効になり、DBMS_MACUTL.G_NO(No)では無効になります。

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


BEGIN
 DBMS_MACADM.UPDATE_COMMAND_RULE(
  command         => 'SELECT', 
  rule_set_name   => 'Limit Sector 2 Access', 
  object_owner    => 'SYSADM', 
  object_name     => '%', 
  enabled         => DBMS_MACUTL.G_NO);
END;
/

DBMS_MACADMのファクタ・プロシージャおよびファンクション

表12-27に、ファクタの構成に使用できるDBMS_MACADMパッケージのプロシージャおよびファンクションを示します。


関連項目:


表12-27 DBMS_MACADMのファクタ構成プロシージャ

プロシージャ 説明

ADD_FACTOR_LINKプロシージャ


2つのファクタの親子関係を指定します。

ADD_POLICY_FACTORプロシージャ


ファクタのラベルをポリシーのOracle Label Securityラベルに含めることを指定します。

CHANGE_IDENTITY_FACTORプロシージャ


アイデンティティを別ファクタと関連付けます。

CHANGE_IDENTITY_VALUEプロシージャ


アイデンティティの値を更新します。

CREATE_DOMAIN_IDENTITYプロシージャ


Oracle Real Application Clusters(Oracle RAC)データベース・ノードをドメイン・ファクタ・アイデンティティに追加し、Oracle Label Securityポリシーに従ってラベルを付けます。

CREATE_FACTORプロシージャ


ファクタを作成します。

CREATE_FACTOR_TYPEプロシージャ


ファクタ・タイプを作成します。

CREATE_IDENTITYプロシージャ


アイデンティティを作成します。

CREATE_IDENTITY_MAPプロシージャ


リンクされた子ファクタ(サブファクタ)の値からファクタのアイデンティティを導出するために使用される一連のテストを定義します。

DELETE_FACTORプロシージャ


ファクタを削除します。

DELETE_FACTOR_LINKプロシージャ


2つのファクタの親子関係を削除します。

DELETE_FACTOR_TYPEプロシージャ


ファクタ・タイプを削除します。

DELETE_IDENTITYプロシージャ


アイデンティティを削除します。

DELETE_IDENTITY_MAPプロシージャ


ファクタからアイデンティティ・マップを削除します。

DROP_DOMAIN_IDENTITYプロシージャ


Oracle RACデータベース・ノードをドメインから削除します。

GET_INSTANCE_INFOファンクション


現行データベース・インスタンスについてSYS.V_$INSTANCEシステム表の情報を返します(VARCHAR2値を返します)。

GET_SESSION_INFOファンクション


現行セッションについてSYS.V_$SESSIONシステム表の情報を返します(VARCHAR2値を返します)。

RENAME_FACTORプロシージャ


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

RENAME_FACTOR_TYPEプロシージャ


ファクタ・タイプの名前を変更します。名前の変更は、そのファクタ・タイプが使用されているすべての箇所に反映されます。

UPDATE_FACTORプロシージャ


ファクタを更新します。

UPDATE_FACTOR_TYPEプロシージャ


ファクタ・タイプの説明を更新します。

UPDATE_IDENTITYプロシージャ


ファクタ・アイデンティティの信頼レベルを更新します。


ADD_FACTOR_LINKプロシージャ

ADD_FACTOR_LINKプロシージャは、2つのファクタの親子関係を指定します。

構文

DBMS_MACADM.ADD_FACTOR_LINK(
  parent_factor_name IN VARCHAR2, 
  child_factor_name  IN VARCHAR2, 
  label_indicator    IN VARCHAR2);

パラメータ

表12-28 ADD_FACTOR_LINKのパラメータ

パラメータ 説明

parent_factor_name

親ファクタ名。

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

child_factor_name

子ファクタ名。

label_indicator

親ファクタにリンクされる子ファクタを、Oracle Label Security統合での親ファクタのラベルに含めることを示します。DBMS_MACUTL.G_YES(Yesの場合)またはDBMS_MACUTL.G_NO(Noの場合)のいずれかを指定します。

ファクタに関連付けられているOracle Label Securityのポリシーおよびラベルを検索するには、第16章「Oracle Database Vaultのデータ・ディクショナリ・ビュー」で説明されている次のビューに問い合せます。

  • DVSYS.DBA_DV_MAC_POLICY: 現行のデータベース・インスタンスに定義されているOracle Label Securityポリシーが表示されます。

  • DVSYS.DBA_DV_MAC_POLICY_FACTOR: 現行のデータベース・インスタンスのOracle Label Securityポリシーに関連付けられているファクタが表示されます。

  • DVSYS.DBA_DV_POLICY_LABEL: 各ポリシーのDVSYS.DBA_DV_IDENTITYビューの各ファクタ識別子に対するOracle Label Securityラベルが表示されます。


BEGIN
 DBMS_MACADM.ADD_FACTOR_LINK(
  parent_factor_name => 'HQ_ClientID', 
  child_factor_name  => 'Div1_ClientID', 
  label_indicator    => DBMS_MACUTL.G_YES);
END;
/

ADD_POLICY_FACTORプロシージャ

ADD_POLICY_FACTORプロシージャは、ファクタのラベルをポリシーのOracle Label Securityラベルに含めることを指定します。

構文

DBMS_MACADM.ADD_POLICY_FACTOR(
  policy_name  IN VARCHAR2, 
  factor_name  IN VARCHAR2); 

パラメータ

表12-29 ADD_POLICY_FACTORのパラメータ

パラメータ 説明

policy_name

Oracle Label Securityポリシー名。

現行のデータベース・インスタンスに定義されているポリシーを検索するには、「DVSYS.DBA_DV_MAC_POLICYビュー」で説明されているDVSYS.DBA_DV_MAC_POLICYビューに問い合せます。

Oracle Label Securityポリシーに関連付けられているファクタを検索するには、「DVSYS.DBA_DV_MAC_POLICY_FACTORビュー」で説明されているDVSYS.DBA_DV_MAC_POLICY_FACTORに問い合せます。

factor_name

ファクタ名。

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


BEGIN
 DBMS_MACADM.ADD_POLICY_FACTOR(
  policy_name  => 'AccessData', 
  factor_name  => 'Sector2_ClientID'); 
END;
/

CHANGE_IDENTITY_FACTORプロシージャ

CHANGE_IDENTITY_FACTORプロシージャは、アイデンティティを別ファクタと関連付けます。

構文

DBMS_MACADM.CHANGE_IDENTITY_FACTOR(
  factor_name     IN VARCHAR2, 
  value           IN VARCHAR2, 
  new_factor_name IN VARCHAR2); 

パラメータ

表12-30 CHANGE_IDENTITY_FACTORのパラメータ

パラメータ 説明

factor_name

現在のファクタ名。

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

value

更新するアイデンティティの値。

現行のデータベース・インスタンスで各ファクタの既存のアイデンティティを検索するには、「DVSYS.DBA_DV_IDENTITYビュー」で説明されているDVSYS.DBA_DV_IDENTITYビューに問い合せます。

現行のアイデンティティ・マップを検索するには、「DVSYS.DBA_DV_IDENTITY_MAPビュー」で説明されているDVSYS.DBA_DV_IDENTITY_MAPビューに問い合せます。

new_factor_name

アイデンティティと関連付けるファクタの名前。「DVSYS.DBA_DV_FACTORビュー」で説明されているDVSYS.DBA_DV_FACTORビューに問い合せることで検索できます。


BEGIN
 DBMS_MACADM.CHANGE_IDENTITY_FACTOR(
  factor_name     => 'Sector2_ClientID', 
  value           => 'intranet', 
  new_factor_name => 'Sector4_ClientID'); 
END;
/

CHANGE_IDENTITY_VALUEプロシージャ

CHANGE_IDENTITY_FACTORプロシージャは、アイデンティティの値を更新します。

構文

DBMS_MACADM.CHANGE_IDENTITY_VALUE(
  factor_name  IN VARCHAR2, 
  value        IN VARCHAR2, 
  new_value    IN VARCHAR2); 

パラメータ

表12-31 CHANGE_IDENTITY_VALUEのパラメータ

パラメータ 説明

factor_name

ファクタ名。

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

value

アイデンティティに関連付けられている現在の値。

現行のデータベース・インスタンスで各ファクタの既存のアイデンティティを検索するには、「DVSYS.DBA_DV_IDENTITYビュー」で説明されているDVSYS.DBA_DV_IDENTITYビューに問い合せます。

現行のアイデンティティ・マップを検索するには、「DVSYS.DBA_DV_IDENTITY_MAPビュー」で説明されているDVSYS.DBA_DV_IDENTITY_MAPビューに問い合せます。

new_value

新しいアイデンティティ値(大/小文字混在で最大1024文字)。


BEGIN
 DBMS_MACADM.CHANGE_IDENTITY_VALUE(
  factor_name  => 'Sector2_ClientID', 
  value        => 'remote', 
  new_value    => 'intranet');
END; 
/

CREATE_DOMAIN_IDENTITYプロシージャ

CREATE_DOMAIN_IDENTITYプロシージャは、Oracle Real Application Clusters(Oracle RAC)データベース・ノードをドメイン・ファクタ・アイデンティティに追加し、Oracle Label Securityポリシーに従ってラベルを付けます。

構文

DBMS_MACADM.CREATE_DOMAIN_IDENTITY(
  domain_name  IN VARCHAR2, 
  domain_host  IN VARCHAR2, 
  policy_name  IN VARCHAR2 DEFAULT NULL, 
  domain_label IN VARCHAR2 DEFAULT NULL); 

パラメータ

表12-32 CREATE_DOMAIN_IDENTITYのパラメータ

パラメータ 説明

domain_name

ホストを追加するドメインの名前。

分散データベース・システムのネットワーク構造内でデータベースの論理的な場所を検索するには、「Oracle Database VaultのPL/SQLファクタ・ファンクション」で説明されているDVF.F$DATABASE_DOMAINファンクションを実行します。

domain_host

ドメインに追加されるOracle Real Application Clustersホスト名。

データベースのホスト名を検索するには、「Oracle Database VaultのPL/SQLファクタ・ファンクション」で説明されているDVF.F$DATABASE_HOSTNAMEファンクションを実行します。

policy_name

Oracle Label Securityポリシー名。ポリシー名を省略すると、ドメインはどのポリシーにも関連付けられません。

使用可能なポリシーを検索するには、「DVSYS.DBA_DV_MAC_POLICYビュー」で説明されているDVSYS.DBA_DV_MAC_POLICYビューに問い合せます。

domain_label

Oracle Label Securityポリシーを追加するドメインの名前。


BEGIN
 DBMS_MACADM.CREATE_DOMAIN_IDENTITY(
  domain_name  => 'example', 
  domain_host  => 'mydom_host', 
  policy_name  => 'AccessData', 
  domain_label => 'sensitive'); 
END;
/

CREATE_FACTORプロシージャ

CREATE_FACTORプロシージャはファクタを作成します。ファクタを作成した後で、「CREATE_IDENTITYプロシージャ」で説明されているCREATE_IDENTITYプロシージャを使用して、アイデンティティを付与できます。

構文

DBMS_MACADM.CREATE_FACTOR(
  factor_name       IN VARCHAR2, 
  factor_type_name  IN VARCHAR2, 
  description       IN VARCHAR2, 
  rule_set_name     IN VARCHAR2, 
  get_expr          IN VARCHAR2, 
  validate_expr     IN VARCHAR2, 
  identify_by       IN NUMBER, 
  labeled_by        IN NUMBER, 
  eval_options      IN NUMBER, 
  audit_options     IN NUMBER, 
  fail_options      IN NUMBER); 

パラメータ

表12-33 CREATE_FACTORのパラメータ

パラメータ 説明

factor_name

ファクタ名(空白を使用せず、大/小文字混在で最大28文字)。

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

factor_type_name

ファクタのタイプ(空白を使用せず、大/小文字混在で最大30文字)。

既存のファクタ・タイプを検索するには、「DVSYS.DBA_DV_FACTOR_TYPEビュー」で説明されているDBA_DV_FACTOR_TYPEビューに問い合せます。

description

ファクタの目的の説明(大/小文字混在で最大1024文字)。

rule_set_name

ファクタ・アイデンティティを設定する時期および方法の制御にルール・セットを使用する場合のルール・セット名。

既存のルール・セットを検索するには、「DVSYS.DBA_DV_RULE_SETビュー」で説明されているDVSYS.DBA_DV_RULE_SETビューに問い合せます。ファクタへのルール・セットの割当ての詳細は、「割当てルール・セット」を参照してください。

get_expr

ファクタのアイデンティティを取得する有効なPL/SQL式。大/小文字混在で最大255文字まで使用できます。詳細は、「取得メソッド」を参照してください。audit_optionsパラメータも参照してください。

validate_expr

ファクタを検証するプロシージャの名前。これは、ブール値(TRUEまたはFALSE)を返してファクタのアイデンティティを検証する有効なPL/SQL式です。詳細は、「検証メソッド」を参照してください。

identify_by

get_exprパラメータの式セットに基づいてファクタのアイデンティティを決定するオプション。

  • DBMS_MACUTL.G_IDENTIFY_BY_CONSTANT: 定数

  • DBMS_MACUTL.G_IDENTIFY_BY_METHOD: メソッド

  • DBMS_MACUTL.G_IDENTIFY_BY_FACTOR: ファクタ

  • DBMS_MACUTL.G_IDENTIFY_BY_CONTEXT: コンテキスト

詳細は、「ファクタの識別」を参照してください。

labeled_by

ファクタのラベル付けのオプション。

  • DBMS_MACUTL.G_LABELED_BY_SELF: Oracle Label Securityポリシー(デフォルト)に関連付けられているラベルから直接ファクタのアイデンティティをラベル付けします。

  • DBMS_MACUTL.G_LABELED_BY_FACTORS: 子ファクタ・アイデンティティのラベルからファクタ・アイデンティティ・ラベルを導出します。

詳細は、「ファクタ・ラベリング」を参照してください。

eval_options

ユーザーがログインするときにファクタを評価するオプション。

  • DBMS_MACUTL.G_EVAL_ON_SESSION: データベース・セッションの作成時(デフォルト)

  • DBMS_MACUTL.G_EVAL_ON_ACCESS: ファクタがアクセスされる際に毎回

  • DBMS_MACUTL.G_EVAL_ON_STARTUP: 起動時

詳細は、「評価」を参照してください。

audit_options

カスタムのOracle Database Vault監査レコードから生成する場合にファクタを監査するオプション。

  • DBMS_MACUTL.G_AUDIT_OFF: 監査を無効にします。

  • DBMS_MACUTL.G_AUDIT_ALWAYS: 常に監査します。

  • DBMS_MACUTL.G_AUDIT_ON_GET_ERROR: get_exprがエラーを戻した場合に監査します。

  • DBMS_MACUTL.G_AUDIT_ON_GET_NULL: get_exprがnullの場合に監査します。

  • DBMS_MACUTL.G_AUDIT_ON_VALIDATE_ERROR: 検証プロシージャがエラーを戻した場合に監査します。

  • DBMS_MACUTL.G_AUDIT_ON_VALIDATE_FALSE: 検証プロシージャがfalseの場合に監査します。

  • DBMS_MACUTL.G_AUDIT_ON_TRUST_LEVEL_NULL: 信頼レベルが設定されていない場合に監査します。

  • DBMS_MACUTL.G_AUDIT_ON_TRUST_LEVEL_NEG: 信頼レベルが負の場合に監査します。

詳細は、「監査オプション」を参照してください。

fail_options

ファクタ・エラーをレポートするオプション。

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

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

詳細は、「エラー・オプション」を参照してください。


BEGIN
 DBMS_MACADM.CREATE_FACTOR(
  factor_name       => 'Sector2_DB', 
  factor_type_name  => 'Instance', 
  description       => ' ', 
  rule_set_name     => 'Limit_DBA_Access', 
  get_expr          => 'UPPER(SYS_CONTEXT(''USERENV'',''DB_NAME''))', 
  validate_expr     => 'dbavowner.check_db_access', 
  identify_by       => DBMS_MACUTL.G_IDENTIFY_BY_METHOD, 
  labeled_by        => DBMS_MACUTL.G_LABELED_BY_SELF, 
  eval_options      => DBMS_MACUTL.G_EVAL_ON_SESSION, 
  audit_options     => DBMS_MACUTL.G_AUDIT_OFF, 
  fail_options      => DBMS_MACUTL.G_FAIL_SILENTLY); 
END;
/

CREATE_FACTOR_TYPEプロシージャ

CREATE_FACTOR_TYPEプロシージャは、ユーザー定義のファクタ・タイプを作成します。

構文

DBMS_MACADM.CREATE_FACTOR_TYPE(
  name        IN VARCHAR2, 
  description IN VARCHAR2);

パラメータ

表12-34 CREATE_FACTOR_TYPEのパラメータ

パラメータ 説明

name

ファクタ・タイプ名(空白を使用せず、大/小文字混在で最大30文字)。

既存のファクタ・タイプを検索するには、「DVSYS.DBA_DV_FACTOR_TYPEビュー」で説明されているDVSYS.DBA_DV_FACTOR_TYPEビューに問い合せます。

description

ファクタ・タイプの目的の説明(大/小文字混在で最大1024文字)。


BEGIN
 DBMS_MACADM.CREATE_FACTOR_TYPE(
  name        => 'Sector2Instance', 
  description => 'Checks DB instances used in Sector 2');
END;
/

CREATE_IDENTITYプロシージャ

CREATE_IDENTITYプロシージャは、指定されたファクタに対してアイデンティティおよび関連付けられた信頼レベルを割り当てます。ファクタの作成後には、アイデンティティを割り当てる必要があります。

構文

DBMS_MACADM.CREATE_IDENTITY(
  factor_name  IN VARCHAR2, 
  value        IN VARCHAR2, 
  trust_level  IN NUMBER); 

パラメータ

表12-35 CREATE_IDENTITYのパラメータ

パラメータ 説明

factor_name

ファクタ名。

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

value

ファクタの実際の値(大/小文字混在で最大1024文字)。たとえば、IP_Addressファクタのアイデンティティは、192.0.2.12というIPアドレスになります。

trust_level

同じファクタの別のアイデンティティと比較した信頼の度合いを示す数値。一般に、信頼レベルの数値が高く設定されているほど信頼の度合いも高くなります。信頼レベル10は、非常に信頼度が高いことを表します。信頼レベルの数値が負の場合は信頼できません。

信頼レベルおよびラベル・セキュリティの詳細は、「ファクタ・アイデンティティの作成および構成」を参照してください。


BEGIN
 DBMS_MACADM.CREATE_IDENTITY(
  factor_name  => 'Sector2_ClientID', 
  value        => 'intranet', 
  trust_level  => 5); 
END;
/

CREATE_IDENTITY_MAPプロシージャ

CREATE_IDENTITY_MAPプロシージャは、リンクされた子ファクタ(サブファクタ)の値からファクタのアイデンティティを導出するために使用される一連のテストを定義します。

構文

DBMS_MACADM.CREATE_IDENTITY_MAP(
  identity_factor_name  IN VARCHAR2,
  identity_factor_value IN VARCHAR2, 
  parent_factor_name    IN VARCHAR2, 
  child_factor_name     IN VARCHAR2, 
  operation             IN VARCHAR2, 
  operand1              IN VARCHAR2, 
  operand2              IN VARCHAR2);

パラメータ

表12-36 CREATE_IDENTITY_MAPのパラメータ

パラメータ 説明

identity_factor_name

アイデンティティ・マップの対象のファクタ。

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

identity_factor_value

アイデンティティ・マップの評価がTRUEの場合は、ファクタで想定される値。

既存のファクタ・アイデンティティを検索するには、「DVSYS.DBA_DV_IDENTITYビュー」で説明されているDVSYS.DBA_DV_IDENTITYビューに問い合せます。

現行のファクタ・アイデンティティ・マップを検索するには、「DVSYS.DBA_DV_IDENTITY_MAPビュー」で説明されているDVSYS.DBA_DV_IDENTITY_MAPを使用します。

parent_factor_name

マップが関連する親ファクタ・リンク。

既存の親子ファクタ・マップを検索するには、「DVSYS.DBA_DV_IDENTITY_MAPビュー」で説明されているDVSYS.DBA_DV_IDENTITY_MAPビューに問い合せます。

child_factor_name

マップが関連する子ファクタ・リンク。

operation

アイデンティティ・マップの関係演算子(たとえば、<、>、=など)。

operand1

関係演算子の左オペランド。入力する下限値を表します。

operand2

関係演算子の右オペランド。入力する上限値を表します。


BEGIN
 DBMS_MACADM.CREATE_IDENTITY_MAP(
  identity_factor_name  => 'Sector2_ClientID',
  identity_factor_value => 'intranet', 
  parent_factor_name    => 'HQ_ClientID', 
  child_factor_name     => 'Div1_ClientID', 
  operation             => '<', 
  operand1              => '192.0.2.50', 
  operand2              => '192.0.2.100');
END;
/

DELETE_FACTORプロシージャ

DELETE_FACTORプロシージャはファクタを削除します。

構文

DBMS_MACADM.DELETE_FACTOR(
  factor_name IN VARCHAR2);

パラメータ

表12-37 DELETE_FACTORのパラメータ

パラメータ 説明

factor_name

ファクタ名。

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


EXEC DBMS_MACADM.DELETE_FACTOR('Sector2_ClientID');

DELETE_FACTOR_LINKプロシージャ

DELETE_FACTOR_LINKプロシージャは、2つのファクタの親子関係を削除します。

構文

DBMS_MACADM.DELETE_FACTOR_LINK(
  parent_factor_name IN VARCHAR2, 
  child_factor_name  IN VARCHAR2); 

パラメータ

表12-38 DELETE_FACTOR_LINKのパラメータ

パラメータ 説明

parent_factor_name

ファクタ名。

現行のデータベース・インスタンスで親子マッピングに使用されているファクタを検索するには、「DVSYS.DBA_DV_FACTOR_LINKビュー」で説明されているDVSYS.DBA_DV_FACTOR_LINKビューに問い合せます。

child_factor_name

ファクタ名。


BEGIN
 DBMS_MACADM.DELETE_FACTOR_LINK(
  parent_factor_name => 'HQ_ClientID', 
  child_factor_name  => 'Div1_ClientID'); 
END;
/

DELETE_FACTOR_TYPEプロシージャ

DELETE_FACTOR_TYPEプロシージャはファクタ・タイプを削除します。

構文

DBMS_MACADM.DELETE_FACTOR_TYPE(
  name IN VARCHAR2);

パラメータ

表12-39 DELETE_FACTOR_TYPEのパラメータ

パラメータ 説明

name

ファクタ・タイプ名。

既存のファクタ・タイプを検索するには、「DVSYS.DBA_DV_FACTOR_TYPEビュー」で説明されているDVSYS.DBA_DV_FACTOR_TYPEビューに問い合せます。


EXEC DBMS_MACADM.DELETE_FACTOR_TYPE('Sector2Instance');

DELETE_IDENTITYプロシージャ

DELETE_IDENTITYプロシージャは、既存のファクタからアイデンティティを削除します。

構文

DBMS_MACADM.DELETE_IDENTITY(
  factor_name IN VARCHAR2, 
  value       IN VARCHAR2); 

パラメータ

表12-40 DELETE_IDENTITYのパラメータ

パラメータ 説明

factor_name

ファクタ名。

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

value

ファクタに関連付けられているアイデンティティ値。

現行のデータベース・インスタンスで各ファクタのアイデンティティを検索するには、「DVSYS.DBA_DV_IDENTITYビュー」で説明されているDVSYS.DBA_DV_IDENTITYビューに問い合せます。


BEGIN
 DBMS_MACADM.DELETE_IDENTITY(
  factor_name => 'Sector2_ClientID', 
  value       => 'intranet'); 
END;
/

DELETE_IDENTITY_MAPプロシージャ

DELETE_IDENTITY_MAPプロシージャは、ファクタのアイデンティティ・マップを削除します。

構文

DBMS_MACADM.DELETE_IDENTITY_MAP(
  identity_factor_name  IN VARCHAR2, 
  identity_factor_value IN VARCHAR2,
  parent_factor_name    IN VARCHAR2, 
  child_factor_name     IN VARCHAR2, 
  operation             IN VARCHAR2, 
  operand1              IN VARCHAR2, 
  operand2              IN VARCHAR2); 

パラメータ

表12-41 DELETE_IDENTITY_MAPのパラメータ

パラメータ 説明

identity_factor_name

アイデンティティ・マップの対象のファクタ。

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

identity_factor_value

アイデンティティ・マップの評価がTRUEの場合は、ファクタで想定される値。

既存のファクタ・アイデンティティを検索するには、「DVSYS.DBA_DV_IDENTITYビュー」で説明されているDVSYS.DBA_DV_IDENTITYビューに問い合せます。

現行のファクタ・アイデンティティ・マップを検索するには、「DVSYS.DBA_DV_IDENTITY_MAPビュー」で説明されているDVSYS.DBA_DV_IDENTITY_MAPに問い合せます。

parent_factor_name

マップが関連する親ファクタ・リンク。

既存の親子ファクタを検索するには、「DVSYS.DBA_DV_FACTOR_LINKビュー」で説明されているDVSYS.DBA_DV_FACTOR_linkビューに問い合せます。

child_factor_name

マップが関連する子ファクタ。

operation

アイデンティティ・マップの関係演算子(たとえば、<、>、=など)。

operand1

関係演算子の左(下限値)オペランド。

operand2

関係演算子の右(上限値)オペランド。


BEGIN
 DBMS_MACADM.DELETE_IDENTITY_MAP(
  identity_factor_name  => 'Sector2_ClientID',
  identity_factor_value => 'intranet', 
  parent_factor_name    => 'HQ_ClientID', 
  child_factor_name     => 'Div1_ClientID', 
  operation             => '<', 
  operand1              => '192.0.2.10', 
  operand2              => '192.0.2.15');
END;
/

DROP_DOMAIN_IDENTITYプロシージャ

DROP_DOMAIN_IDENTITYプロシージャは、Oracle Real Application Clustersデータベース・ノードをドメインから削除します。

構文

DBMS_MACADM.DROP_DOMAIN_IDENTITY(
  domain_name  IN VARCHAR2, 
  domain_host  IN VARCHAR2); 

パラメータ

表12-42 DROP_DOMAIN_IDENTITYのパラメータ

パラメータ 説明

domain_name

ホストが追加されたドメインの名前。

DB_DOMAIN初期化パラメータで指定されたデータベースのドメインを検索するには、「Oracle Database VaultのPL/SQLファクタ・ファンクション」で説明されているDVF.F$DATABASE_DOMAINファンクションを実行します。

domain_host

ドメインに追加されたOracle Real Application Clustersホスト名。

指定されたデータベースのホスト名を検索するには、「Oracle Database VaultのPL/SQLファクタ・ファンクション」で説明されているDVF.F$DATABASE_HOSTNAMEファンクションを実行します。


BEGIN
 DBMS_MACADM.DROP_DOMAIN_IDENTITY(
  domain_name  => 'example', 
  domain_host  => 'mydom_host'); 
END;
/

GET_INSTANCE_INFOファンクション

GET_INSTANCE_INFOファンクションは、現行のデータベース・インスタンスについてSYS.V_$INSTANCEシステム表の情報を返します。V$INSTANCEデータ・ディクショナリ・ビューにも、この表のデータベース・インスタンス情報が含まれます。詳細は、『Oracle Databaseリファレンス』を参照してください。

構文

DBMS_MACADM.GET_INSTANCE_INFO(
  p_parameter IN VARCHAR2)
RETURN VARCHAR2; 

パラメータ

表12-43 GET_INSTANCE_INFOのパラメータ

パラメータ 説明

p_parameter

SYS.V_$INSTANCEシステム表の列名。


DECLARE
 instance_var varchar2 := null;
BEGIN 
 instance_var = DBMS_MACADM.GET_INSTANCE_INFO('INSTANCE_NAME'); 
END;
/

GET_SESSION_INFOファンクション

GET_SESSION_INFOファンクションは、現行セッションについてSYS.V_$SESSIONシステム表の情報を返します。V$SESSIONデータ・ディクショナリ・ビューにも、この表のセッション情報が含まれます。詳細は、『Oracle Databaseリファレンス』を参照してください。

構文

DBMS_MACADM.GET_SESSION_INFO(
  p_parameter IN VARCHAR2)
RETURN VARCHAR2;

パラメータ

表12-44 GET_SESSION_INFOのパラメータ

パラメータ 説明

p_parameter

SYS.V_$SESSIONシステム表の列名。


DECLARE
 session_var varchar2 := null;
BEGIN 
 session_var = DBMS_MACADM.GET_SESSION_INFO('PROCESS'); 
END;
/

RENAME_FACTORプロシージャ

RENAME_FACTORプロシージャは、ファクタの名前を変更します。名前の変更は、そのファクタが使用されているすべての箇所に反映されます。

構文

DBMS_MACADM.RENAME_FACTOR(
  factor_name     IN VARCHAR2, 
  new_factor_name IN VARCHAR2);

パラメータ

表12-45 RENAME_FACTORのパラメータ

パラメータ 説明

factor_name

現在のファクタ名。

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

new_factor_name

新しいファクタ名(空白を使用せず、大/小文字混在で最大28文字)。


BEGIN
 DBMS_MACADM.RENAME_FACTOR(
  factor_name     => 'Sector2_ClientID', 
  new_factor_name => 'Sector2_Clients');
END;
/

RENAME_FACTOR_TYPEプロシージャ

RENAME_FACTORプロシージャは、ファクタ・タイプの名前を変更します。名前の変更は、そのファクタ・タイプが使用されているすべての箇所に反映されます。

構文

DBMS_MACADM.RENAME_FACTOR_TYPE(
  old_name  IN VARCHAR2, 
  new_name  IN VARCHAR2); 

パラメータ

表12-46 RENAME_FACTOR_TYPEのパラメータ

パラメータ 説明

old_name

現在のファクタ・タイプ名。

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

new_name

新しいファクタ・タイプ名(空白を使用せず、大/小文字混在で最大30文字)。


BEGIN
 DBMS_MACADM.RENAME_FACTOR_TYPE(
  old_name  => 'Sector2Instance', 
  new_name  => 'Sector2DBInstance'); 
END;
/

UPDATE_FACTORプロシージャ

UPDATE_FACTORプロシージャは、ファクタ・タイプの説明を更新します。

構文

DBMS_MACADM.UPDATE_FACTOR(
  factor_name       IN VARCHAR2, 
  factor_type_name  IN VARCHAR2, 
  description       IN VARCHAR2, 
  rule_set_name     IN VARCHAR2, 
  get_expr          IN VARCHAR2, 
  validate_expr     IN VARCHAR2, 
  identify_by       IN NUMBER, 
  labeled_by        IN NUMBER, 
  eval_options      IN NUMBER, 
  audit_options     IN NUMBER, 
  fail_options      IN NUMBER); 

パラメータ

表12-47 UPDATE_FACTOR

パラメータ 説明

factor_name

ファクタ名。

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

factor_type_name

ファクタ・タイプ名。

既存のファクタ・タイプを検索するには、「DVSYS.DBA_DV_FACTOR_TYPEビュー」で説明されているDVSYS.DBA_DV_FACTOR_TYPEビューに問い合せます。

description

ファクタの目的の説明(大/小文字混在で最大1024文字)。

rule_set_name

ファクタ・アイデンティティを設定する時期および方法の制御に使用されるルール・セットの名前。

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

ファクタへのルール・セットの割当ての詳細は、「割当てルール・セット」を参照してください。

get_expr

ファクタのアイデンティティを取得する有効なPL/SQL式。大/小文字混在で最大255文字まで使用できます。詳細は、「取得メソッド」を参照してください。audit_optionsパラメータも参照してください。

validate_expr

ファクタを検証するプロシージャの名前。これは、ブール値(TRUEまたはFALSE)を返してファクタのアイデンティティを検証する有効なPL/SQL式です。詳細は、「検証メソッド」を参照してください。

identify_by

get_exprパラメータの式セットに基づいてファクタのアイデンティティを決定するオプション。

  • DBMS_MACUTL.G_IDENTIFY_BY_CONSTANT: 定数

  • DBMS_MACUTL.G_IDENTIFY_BY_METHOD: メソッド

  • DBMS_MACUTL.G_IDENTIFY_BY_FACTOR: ファクタ

  • DBMS_MACUTL.G_IDENTIFY_BY_CONTEXT: コンテキスト

詳細は、「ファクタの識別」を参照してください。

labeled_by

ファクタのラベル付けのオプション。

  • DBMS_MACUTL.G_LABELED_BY_SELF: Oracle Label Securityポリシーに関連付けられているラベルから直接ファクタのアイデンティティをラベル付けします。

  • DBMS_MACUTL.G_LABELED_BY_FACTORS: 子ファクタ・アイデンティティのラベルからファクタ・アイデンティティ・ラベルを導出します。

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

詳細は、「ファクタ・ラベリング」を参照してください。

eval_options

ユーザーがログインするときにファクタを評価するオプション。

  • DBMS_MACUTL.G_EVAL_ON_SESSION: データベース・セッションの作成時

  • DBMS_MACUTL.G_EVAL_ON_ACCESS:: ファクタがアクセスされる際に毎回

  • DBMS_MACUTL.G_EVAL_ON_STARTUP:: 起動時

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

詳細は、「評価」を参照してください。

audit_options

カスタムのOracle Database Vault監査レコードから生成する場合にファクタを監査するオプション。

  • DBMS_MACUTL.G_AUDIT_OFF: 監査を無効にします。

  • DBMS_MACUTL.G_AUDIT_ALWAYS: 常に監査します。

  • DBMS_MACUTL.G_AUDIT_ON_GET_ERROR: get_exprがエラーを戻した場合に監査します。

  • DBMS_MACUTL.G_AUDIT_ON_GET_NULL: get_exprがnullの場合に監査します。

  • DBMS_MACUTL.G_AUDIT_ON_VALIDATE_ERROR: 検証プロシージャがエラーを戻した場合に監査します。

  • DBMS_MACUTL.G_AUDIT_ON_VALIDATE_FALSE: 検証プロシージャがfalseの場合に監査します。

  • DBMS_MACUTL.G_AUDIT_ON_TRUST_LEVEL_NULL: 信頼レベルが設定されていない場合に監査します。

  • DBMS_MACUTL.G_AUDIT_ON_TRUST_LEVEL_NEG: 信頼レベルが負の場合に監査します。

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

詳細は、「監査オプション」を参照してください。

fail_options

ファクタ・エラーをレポートするオプション。

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

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

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

詳細は、「エラー・オプション」を参照してください。


BEGIN
 DBMS_MACADM.UPDATE_FACTOR(
  factor_name       => 'Sector2_DB', 
  factor_type_name  => 'Instance', 
  description       => ' ', 
  rule_set_name     => 'Limit_DBA_Access', 
  get_expr          => 'UPPER(SYS_CONTEXT(''USERENV'',''DB_NAME''))', 
  validate_expr     => 'dbavowner.check_db_access', 
  identify_by       => DBMS_MACUTL.G_IDENTIFY_BY_METHOD, 
  labeled_by        => DBMS_MACUTL.G_LABELED_BY_SELF, 
  eval_options      => DBMS_MACUTL.G_EVAL_ON_ACCESS, 
  audit_options     => DBMS_MACUTL.G_AUDIT_ALWAYS, 
  fail_options      => DBMS_MACUTL.G_FAIL_WITH_MESSAGE); 
END;
/

UPDATE_FACTOR_TYPEプロシージャ

UPDATE_FACTOR_TYPEプロシージャはファクタ・タイプを更新します。

構文

DBMS_MACADM.UPDATE_FACTOR_TYPE(
  name         IN VARCHAR2, 
  description  IN VARCHAR2);

パラメータ

表12-48 UPDATE_FACTOR_TYPEのパラメータ

パラメータ 説明

name

ファクタ・タイプ名。

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

description

ファクタ・タイプの目的の説明(大/小文字混在で最大1024文字)。


BEGIN
 DBMS_MACADM.UPDATE_FACTOR_TYPE(
  name        => 'Sector2DBInstance', 
  description => 'Checks DB instances used in Sector 2');
END;
/

UPDATE_IDENTITYプロシージャ

UPDATE_IDENTITYプロシージャは、ファクタ・アイデンティティの信頼レベルを更新します。

構文

DBMS_MACADM.UPDATE_IDENTITY(
  factor_name  IN VARCHAR2, 
  value        IN VARCHAR2, 
  trust_level  IN NUMBER); 

パラメータ

表12-49 UPDATE_IDENTITYのパラメータ

パラメータ 説明

factor_name

ファクタ名。

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

アイデンティティを持つファクタを検索するには、「DVSYS.DBA_DV_IDENTITYビュー」で説明されているDVSYS.DBA_DV_IDENTITYに問い合せます。

value

新しいファクタ・アイデンティティ(大/小文字混在で最大1024文字)。たとえば、IP_Addressファクタのアイデンティティは、192.0.2.12というIPアドレスになります。

trust_level

同じファクタの別のアイデンティティと比較した信頼の度合いを示す数値。一般に、信頼レベルの数値が高く設定されているほど信頼の度合いも高くなります。信頼レベル10は、非常に信頼度が高いことを表します。信頼レベルの数値が負の場合は信頼できません。

信頼レベルおよびラベル・セキュリティの詳細は、「ファクタ・アイデンティティの作成および構成」を参照してください。


BEGIN
 DBMS_MACADM.UPDATE_IDENTITY(
  factor_name  => 'Sector2_ClientID', 
  value        => 'intranet', 
  trust_level  => 10); 
END;
/

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

表12-50に、Oracle Database Vaultセキュア・アプリケーション・ロールの構成に使用できるDBMS_MACADMパッケージのプロシージャを示します。

セキュア・アプリケーション・ロールの詳細は、第8章「Oracle Database Vaultのセキュア・アプリケーション・ロールの構成」を参照してください。また、セキュア・アプリケーション・ロール・プロシージャとともに使用できる一連の汎用ユーティリティ・プロシージャは、第14章「DBMS_MACUTLパッケージの使用方法」を参照してください。

表12-50 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);

パラメータ

表12-51 CREATE_ROLEのパラメータ

パラメータ 説明

role_name

ロール名(空白を使用せず、最大30文字)。必須ではありませんが、ロール名は大文字で入力することをお薦めします。

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

enabled

Y(YES)を選択するとロールを有効化できるようになり、N(NO)を選択するとロールを有効化できなくなります。デフォルトはYです。

次のDBMS_MACUTLの定数も使用できます。

  • DBMS_MACUTL.G_YES

  • DBMS_MACUTL.G_NO

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

パラメータ

表12-52 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);

パラメータ

表12-53 RENAME_ROLEのパラメータ

パラメータ 説明

role_name

現在のロール名。必須ではありませんが、ロール名は大文字で入力することをお薦めします。

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

new_role_name

ロール名(空白を使用せず、大文字で最大30文字)。この名前が、『Oracle Database SQL言語リファレンス』で説明されている、ロール作成の標準のOracleネーミング規則に準拠していることを確認してください。


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

パラメータ

表12-54 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_MACADMのOracle Label Securityポリシー・プロシージャ

表12-55に、Oracle Database VaultにOracle Label Securityポリシーを構成するために使用できるDBMS_MACADMパッケージのプロシージャを示します。

Oracle Label Securityポリシーの詳細は、第9章「Oracle Database Vaultとその他のOracle製品の統合」を参照してください。また、Oracle Label Securityポリシー・プロシージャとともに使用できる一連の汎用ユーティリティ・プロシージャは、第14章「DBMS_MACUTLパッケージの使用方法」を参照してください。

表12-55 DBMS_MACADMのOracle Label Security構成プロシージャ

プロシージャ 説明

CREATE_MAC_POLICYプロシージャ


ファクタのラベルまたはOracle Label Securityセッション・ラベルを算出する際にラベルのマージに使用されるアルゴリズムを指定します。

CREATE_POLICY_LABELプロシージャ


Oracle Label Securityポリシー内のアイデンティティにラベルを付けます。

DELETE_MAC_POLICY_CASCADEプロシージャ


Oracle Label Securityポリシーに関連するすべてのOracle Database Vaultオブジェクトを削除します。

DELETE_POLICY_FACTORプロシージャ


Oracle Label Securityラベルの構成からファクタを削除します。

DELETE_POLICY_LABELプロシージャ


Oracle Label Securityポリシーのアイデンティティからラベルを削除します。

UPDATE_MAC_POLICYプロシージャ


ファクタのラベルまたはOracle Label Securityセッション・ラベルを算出する際にラベルのマージに使用されるアルゴリズムを指定します。


CREATE_MAC_POLICYプロシージャ

CREATE_MAC_POLICYプロシージャは、ファクタのラベルまたはOracle Label Securityセッション・ラベルを算出する際にラベルのマージに使用されるアルゴリズムを指定します。

構文

DBMS_MACADM.CREATE_MAC_POLICY(
  policy_name  IN VARCHAR2,
  algorithm    IN VARCHAR2);

パラメータ

表12-56 CREATE_MAC_POLICYのパラメータ

パラメータ 説明

policy_name

既存のポリシーの名前。

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

algorithm

Oracle Label Securityで2つのラベルをマージしている場合のマージ・アルゴリズム。表12-57に示されている、目的のマージ・アルゴリズムに対応するコードを入力します。たとえば、「最大レベル/論理和/論理和」マージ・アルゴリズムを選択する場合は、HUUと入力します。

ラベルマージ・アルゴリズムの詳細は、『Oracle Label Security管理者ガイド』を参照してください。


表12-57 Oracle Label Securityマージ・アルゴリズム・コード

コード

HUU

最大レベル/論理和/論理和

HIU

最大レベル/論理積/論理和

HMU

最大レベル/減算/論理和

HNU

最大レベル/NULL/論理和

HUI

最大レベル/論理和/論理積

HII

最大レベル/論理積/論理積

HMI

最大レベル/減算/論理積

HNI

最大レベル/NULL/論理積

HUM

最大レベル/論理和/減算

HIM

最大レベル/論理積/減算

HMM

最大レベル/減算/減算

HNM

最大レベル/NULL/減算

HUN

最大レベル/論理和/NULL

HIN

最大レベル/論理積/NULL

HMN

最大レベル/減算/NULL

HNN

最大レベル/NULL/NULL

LUU

最小レベル/論理和/論理和

LIU

最小レベル/論理積/論理和

LMU

最小レベル/減算/論理和

LNU

最小レベル/NULL/論理和

LUI

最小レベル/論理和/論理積

LII

最小レベル/論理積/論理積

LMI

最小レベル/減算/論理積

LNI

最小レベル/NULL/論理積

LUM

最小レベル/論理和/減算

LIM

最小レベル/論理積/減算

LMM

最小レベル/減算/減算

LNM

最小レベル/NULL/減算

LUN

最小レベル/論理和/NULL

LIN

最小レベル/論理積/NULL

LMN

最小レベル/減算/NULL

LNN

最小レベル/NULL/NULL


BEGIN
 DBMS_MACADM.CREATE_MAC_POLICY(
  policy_name  => 'Access Locations',
  algorithm    => 'HUU');
END;
/

CREATE_POLICY_LABELプロシージャ

CREATE_POLICY_LABELプロシージャは、Oracle Label Securityポリシーのアイデンティティにラベルを付けます。

構文

DBMS_MACADM.CREATE_POLICY_LABEL(
  identity_factor_name   IN VARCHAR2, 
  identity_factor_value  IN VARCHAR2, 
  policy_name            IN VARCHAR2, 
  label                  IN VARCHAR2); 

パラメータ

表12-58 CREATE_POLICY_LABELのパラメータ

パラメータ 説明

identity_factor_name

ラベルを付けるファクタの名前。

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

Oracle Label Securityポリシーに関連付けられているファクタを検索するには、「DVSYS.DBA_DV_MAC_POLICY_FACTORビュー」で説明されているDVSYS.DBA_DV_MAC_POLICY_FACTORを使用します。

詳細は、「Label Securityポリシー・ファクタ」を参照してください。

identity_factor_value

ラベルを付けるファクタのアイデンティティの値。

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

policy_name

既存のポリシーの名前。

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

label

Oracle Label Securityラベル名。

ファクタ・アイデンティティの既存のポリシー・ラベルを検索するには、「DVSYS.DBA_DV_POLICY_LABELビュー」で説明されているDVSYS.DBA_DV_POLICY_LABELビューに問い合せます。


BEGIN
 DBMS_MACADM.CREATE_POLICY_LABEL(
  identity_factor_name   => 'App_Host_Name', 
  identity_factor_value  => 'Sect2_Fin_Apps', 
  policy_name            => 'Access Locations', 
  label                  => 'Sensitive'); 
END;
/

DELETE_MAC_POLICY_CASCADEプロシージャ

DELETE_MAC_POLICY_CASCADEプロシージャは、Oracle Label Securityポリシーに関連するすべてのOracle Database Vaultオブジェクトを削除します。

構文

DBMS_MACADM.DELETE_MAC_POLICY_CASCADE(
  policy_name  IN VARCHAR2); 

パラメータ

表12-59 DELETE_MAC_POLICY_CASCADEのパラメータ

パラメータ 説明

policy_name

既存のポリシーの名前。

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


EXEC DBMS_MACADM.DELETE_MAC_POLICY_CASCADE('Access Locations'); 

DELETE_POLICY_FACTORプロシージャ

DELETE_POLICY_FACTORプロシージャは、Oracle Label Securityラベルの構成からファクタを削除します。

構文

DBMS_MACADM.DELETE_POLICY_FACTOR(
  policy_name  IN VARCHAR2, 
  factor_name  IN VARCHAR2); 

パラメータ

表12-60 DELETE_POLICY_FACTORのパラメータ

パラメータ 説明

policy_name

既存のポリシーの名前。

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

factor_name

Oracle Label Securityラベルに関連付けられているファクタの名前。

Oracle Label Securityポリシーに関連付けられているファクタを検索するには、「DVSYS.DBA_DV_MAC_POLICY_FACTORビュー」で説明されているDVSYS.DBA_DV_MAC_POLICY_FACTORに問い合せます。


BEGIN
 DBMS_MACADM.DELETE_POLICY_FACTOR(
  policy_name  => 'Access Locations', 
  factor_name  => 'App_Host_Name'); 
END;
/

DELETE_POLICY_LABELプロシージャ

DELETE_POLICY_LABELプロシージャは、Oracle Label Securityポリシーのアイデンティティからラベルを削除します。

構文

DBMS_MACADM.DELETE_POLICY_LABEL(
  identity_factor_name   IN VARCHAR2, 
  identity_factor_value  IN VARCHAR2, 
  policy_name            IN VARCHAR2, 
  label                  IN VARCHAR2); 

パラメータ

表12-61 DELETE_POLICY_LABELのパラメータ

パラメータ 説明

identity_factor_name

ラベルを付けたファクタの名前。

現行のデータベース・インスタンスでOracle Label Securityポリシーに関連付けられている既存のファクタを検索するには、「DVSYS.DBA_DV_MAC_POLICY_FACTORビュー」で説明されているDVSYS.DBA_DV_MAC_POLICY_FACTORに問い合せます。

詳細は、「Label Securityポリシー・ファクタ」を参照してください。

identity_factor_value

ラベルを付けたファクタのアイデンティティの値。

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

policy_name

既存のポリシーの名前。

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

label

Oracle Label Securityラベル名。

ファクタ・アイデンティティの既存のポリシー・ラベルを検索するには、「DVSYS.DBA_DV_POLICY_LABELビュー」で説明されているDVSYS.DBA_DV_POLICY_LABELビューに問い合せます。


BEGIN
 DBMS_MACADM.DELETE_POLICY_LABEL(
  identity_factor_name   => 'App_Host_Name', 
  identity_factor_value  => 'Sect2_Fin_Apps', 
  policy_name            => 'Access Locations', 
  label                  => 'Sensitive'); 
END;
/

UPDATE_MAC_POLICYプロシージャ

UPDATE_MAC_POLICYプロシージャは、ファクタのラベルまたはOracle Label Securityセッション・ラベルを算出する際にラベルのマージに使用されるアルゴリズムを指定します。

構文

DBMS_MACADM.UPDATE_MAC_POLICY(
  policy_name  IN VARCHAR2, 
  algorithm    IN VARCHAR2); 

パラメータ

表12-62 UPDATE_MAC_POLICY

パラメータ 説明

policy_name

既存のポリシーの名前。

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

algorithm

Oracle Label Securityで2つのラベルをマージしている場合のマージ・アルゴリズム。使用可能なアルゴリズムのリストは、表12-57を参照してください。

ラベルマージ・アルゴリズムの詳細は、『Oracle Label Security管理者ガイド』を参照してください。


BEGIN
 DBMS_MACADM.UPDATE_MAC_POLICY(
  policy_name  => 'Access Locations',
  algorithm    => 'LUI');
END;
/

DBMS_MACADMの一般システム・メンテナンス・プロシージャ

表12-63に、DV_OWNERまたはDV_ADMINロールの保護を必要とする一般システム・メンテナンス・アクティビティの実行に使用できる、DBMS_MACADM PL/SQLパッケージのプロシージャを示します。

表12-63 DBMS_MACADMの無効/有効プロシージャ

プロシージャ 説明

ADD_NLS_DATAプロシージャ


Oracle Database Vaultに新しい言語を追加します。

AUTHORIZE_DATAPUMP_USERプロシージャ


Oracle Database Vaultが有効な場合に、Oracle Data Pump操作を実行する権限をユーザーに付与します。

AUTHORIZE_SCHEDULER_USERプロシージャ


Oracle Database Vaultが有効な場合に、データベース・ジョブをスケジュールする権限をユーザーに付与します。

UNAUTHORIZE_DATAPUMP_USERプロシージャ


DBMS_MACADM.AUTHORIZE_DATAPUMP_USERプロシージャによって付与された権限を取り消します。

UNAUTHORIZE_SCHEDULER_USERプロシージャ


DBMS_MACADM.AUTHORIZE_SCHEDULER_USERプロシージャによって付与された権限を取り消します。


ADD_NLS_DATAプロシージャ

ADD_NLS_DATAプロシージャは、Oracle Database Vaultに新しい言語を追加します。

構文

DBMS_MACADM.ADD_NLS_DATA(
  language      IN VARCHAR );

パラメータ

表12-64 ADD_NLS_DATA

パラメータ 説明

language

次のいずれかの設定を入力します。(このパラメータでは大/小文字は区別されません。)

  • ENGLISH

  • GERMAN

  • SPANISH

  • FRENCH

  • ITALIAN

  • JAPANESE

  • KOREAN

  • BRAZILIAN PORTUGUESE

  • SIMPLIFIED CHINESE

  • TRADITIONAL CHINESE


EXEC DBMS_MACADM.ADD_NLS_DATA('french');

AUTHORIZE_DATAPUMP_USERプロシージャ

AUTHORIZE_DATAPUMP_USERプロシージャは、Oracle Database Vaultが有効な場合に、ユーザーがOracle Data Pump操作を実行することを認可します。expdpimpdpの両方のユーティリティに適用されます。Oracle Database Vault環境でOracle Data Pumpを使用するために必要な追加の認可レベルなどの完全な使用法については、「データベース管理者に対するOracle Data Pumpの使用の認可」を参照してください。

構文

DBMS_MACADM.AUTHORIZE_DATAPUMP_USER(
  user_name      IN VARCHAR2,
  schema_name    IN VARCHAR2 DEFAULT NULL,
  table_name     IN VARCHAR2 DEFAULT NULL);

パラメータ

表12-65 AUTHORIZE_DATAPUMP_USER

パラメータ 説明

user_name

権限を付与するOracle Data Pumpユーザーの名前。

Oracle Data Pumpの使用権限(EXP_FULL_DATABASEおよびIMP_FULL_DATABASEロール)を持つユーザーのリストを検索するには、次のようにDBA_ROLE_PRIVSデータ・ディクショナリ・ビューに問い合せます。

SELECT GRANTEE, GRANTED_ROLE FROM DBA_ROLE_PRIVS WHERE GRANTED_ROLE LIKE '%FULL%'

schema_name

Oracle Data Pumpユーザーがエクスポートまたはインポートする必要のあるデータベース・スキーマ名。このパラメータを省略すると、データベース内のすべてのスキーマをエクスポートおよびインポートするグローバル権限がユーザーに付与されます。この場合、ユーザーにDV_OWNERまたはDV_ADMINロールが付与されていることを確認します。

table_name

schema_nameパラメータで指定されたスキーマ内の表の名前。このパラメータを省略した場合、指定したユーザーは、schema_nameパラメータで指定されたスキーマ内のすべての表をエクスポートおよびインポートできます。


EXEC DBMS_MACADM.AUTHORIZE_DATAPUMP_USER('DP_MGR');

EXEC DBMS_MACADM.AUTHORIZE_DATAPUMP_USER('DP_MGR', 'HR');

EXEC DBMS_MACADM.AUTHORIZE_DATAPUMP_USER('DP_MGR', 'HR', 'EMPLOYEES'); 

AUTHORIZE_SCHEDULER_USERプロシージャ

AUTHORIZE_SCHEDULER_USERプロシージャは、Oracle Database Vaultが有効な場合に、データベース・ジョブをスケジュールする権限をユーザーに付与します。この権限は、データベース・ジョブのスケジュール権限を持つすべてのユーザーに適用されます。この権限には、CREATE JOBCREATE ANY JOBCREATE EXTERNAL JOBEXECUTE ANY PROGRAMEXECUTE ANY CLASSMANAGE SCHEDULERが含まれます。Oracle Database Vault環境でデータベース・ジョブをスケジュールするために必要な認可レベルなど、完全な使用情報については「Oracle Database Vault環境でのデータベース・ジョブのスケジュール」を参照してください。

構文

DBMS_MACADM.AUTHORIZE_SCHEDULER_USER(
  user_name      IN VARCHAR2,
  schema_name    IN VARCHAR2 DEFAULT NULL);

パラメータ

表12-66 AUTHORIZE_SCHEDULER_USER

パラメータ 説明

user_name

権限を付与するユーザーの名前。

ジョブのスケジュール権限を持つユーザーのリストを検索するには、データベース・ジョブのスケジュール権限を持つユーザーについて、DBA_SYS_PRIVSデータ・ディクショナリ・ビューに問い合せます。「データベース管理者に対するOracle Data Pumpの使用の認可」のステップ2を参照してください。

schema_name

ジョブをスケジュールするデータベース・スキーマの名前。このパラメータを省略すると、データベース内のすべてのスキーマをスケジュールするグローバル権限がユーザーに付与されます。


次の例では、ユーザーJOB_MGRにすべてのスキーマでジョブを実行する権限を付与します。

EXEC DBMS_MACADM.AUTHORIZE_SCHEDULER_USER('JOB_MGR');

次の例では、ユーザーJOB_MGRHRスキーマでのみジョブを実行する権限を付与します。

EXEC DBMS_MACADM.AUTHORIZE_SCHEDULER_USER('JOB_MGR', 'HR');

UNAUTHORIZE_DATAPUMP_USERプロシージャ

UNAUTHORIZE_DATAPUMP_USERプロシージャは、AUTHORIZE_DATAPUMP_USERプロシージャによって付与された権限を取り消します。このプロシージャを実行する場合は、同等のAUTHORIZE_DATAPUMP_USERプロシージャと設定が完全に一致することを確認してください。

たとえば、次の2つのプロシージャはパラメータが一致するため、機能します。

EXEC DBMS_MACADM.AUTHORIZE_DATAPUMP_USER('DP_MGR');

EXEC DBMS_MACADM.UNAUTHORIZE_DATAPUMP_USER('DP_MGR');

しかし、次のプロシージャはパラメータが一致しないため、UNAUTHORIZE_DATAPUMP_USERプロシージャは機能しません。

EXEC DBMS_MACADM.AUTHORIZE_DATAPUMP_USER('JSMITH');

EXEC DBMS_MACADM.UNAUTHORIZE_DATAPUMP_USER('JSMITH', 'HR');

構文

DBMS_MACADM.UNAUTHORIZE_DATAPUMP_USER(
  user_name      IN VARCHAR2,
  schema_name    IN VARCHAR2 DEFAULT NULL,
  table_name     IN VARCHAR2 DEFAULT NULL);

パラメータ

表12-67 UNAUTHORIZE_DATAPUMP_USER

パラメータ 説明

user_name

権限を取り消すOracle Data Pumpユーザーの名前。

AUTHORIZE_DATAPUMP_USERプロシージャのユーザーと権限のリストを検索するには、次のようにDVSYS.DBA_DV_RULE_SETデータ・ディクショナリ・ビューに問い合せます。

SELECT RULE_EXPR FROM DVSYS.DBA_DV_RULE_SET WHERE RULE_SET_NAME = 'Allow Oracle Data Pump Operation';

schema_name

Oracle Data Pumpユーザーがエクスポートまたはインポート権限を付与されているデータベース・スキーマ名。

table_name

schema nameパラメータで指定されたスキーマ内の表の名前。


EXEC DBMS_MACADM.UNAUTHORIZE_DATAPUMP_USER('JSMITH');

EXEC DBMS_MACADM.UNAUTHORIZE_DATAPUMP_USER('JSMITH', 'HR');

EXEC DBMS_MACADM.UNAUTHORIZE_DATAPUMP_USER('JSMITH', 'HR', 'SALARY');

UNAUTHORIZE_SCHEDULER_USERプロシージャ

UNAUTHORIZE_SCHEDULER_USERプロシージャは、AUTHORIZE_SCHEDULER_USERプロシージャによって付与された権限を取り消します。このプロシージャを実行する場合は、同等のAUTHORIZE_SCHEDULER_USERプロシージャと設定が完全に一致することを確認してください。

たとえば、次の2つのプロシージャはパラメータが一致するため、機能します。

EXEC DBMS_MACADM.AUTHORIZE_SCHEDULER_USER('JOB_MGR');

EXEC DBMS_MACADM.UNAUTHORIZE_SCHEDULER_USER('JOB_MGR');

しかし、次のプロシージャはパラメータが一致しないため、UNAUTHORIZE_SCHEDULER_USERプロシージャは機能しません。

EXEC DBMS_MACADM.AUTHORIZE_SCHEDULER_USER('JOB_MGR');

EXEC DBMS_MACADM.UNAUTHORIZE_SCHEDULER_USER('JOB_MGR', 'HR');

構文

DBMS_MACADM.UNAUTHORIZE_SCHEDULER_USER
  user_name      IN VARCHAR2,
  schema_name    IN VARCHAR2 DEFAULT NULL);

パラメータ

表12-68 UNAUTHORIZE_SCHEDULER_USER

パラメータ 説明

user_name

権限を取り消す、ジョブ・スケジュール・ユーザーの名前。

AUTHORIZE_SCHEDULER_USERプロシージャのユーザーと権限のリストを検索するには、次のようにDVSYS.DBA_DV_RULE_SETデータ・ディクショナリ・ビューに問い合せます。

SELECT RULE_EXPR FROM DVSYS.DBA_DV_RULE_SET WHERE RULE_SET_NAME = 'Allow Scheduler Job';

schema_name

ユーザーにジョブ・スケジュール権限が付与されているデータベース・スキーマの名前。


EXEC DBMS_MACADM.UNAUTHORIZE_SCHEDULER_USER('JOB_MGR');

EXEC DBMS_MACADM.UNAUTHORIZE_SCHEDULER_USER('JOB_MGR', 'HR');