14 Oracle Database VaultレルムのAPI

DBMS_MACADM PL/SQLパッケージでは、Oracle Database Vaultレルムを構成できます。

DV_OWNERロールまたはDV_ADMINロールを付与されているユーザーのみがこれらのプロシージャを使用できます。これらのプロシージャで使用できる定数の詳細は、表20-1を参照してください。

14.1 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
 auth_scope    IN NUMBER DEFAULT); 

パラメータ

表14-1 ADD_AUTH_TO_REALMのパラメータ

パラメータ 説明

realm_name

レルム名。

現在のデータベース・インスタンスで既存のレルムを検索するには、DBA_DV_REALMビューを問い合せます。

grantee

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

現在のデータベース・インスタンスで既存のユーザーとロールを検索するには、DBA_USERSおよびDBA_ROLESビューを問い合せます。

特定のユーザーまたはロールの認可を検索するには、DVA_DV_REALM_AUTHビューを問い合せます。

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

rule_set_name

オプション。ランタイムでチェックするルール・セット。レルム認可は、ルール・セットの評価がTRUEの場合のみ有効です。

使用可能なルール・セットを確認するには、DBA_DV_RULE_SETビューに問い合せます。

auth_options

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

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

  • DBMS_MACUTL.G_REALM_AUTH_OWNER: 所有者。このアカウントまたはロールには、レルムの参加者と同じ認可に加えて、レルム保護オブジェクトに対するレルム・セキュア・ロールおよび権限を付与または取り消す認可があります。

参加者と所有者の詳細は、「関連トピック」を参照してください。

auth_scope

このプロシージャの実行方法を決定します。デフォルトはローカルです。オプションは次のとおりです。

  • 現在のPDBでローカルでレルムを認可するには、DBMS_MACUTL.G_SCOPE_LOCAL (または1)

  • アプリケーション・ルートでレルムを認可するには、DBMS_MACUTL.G_SCOPE_COMMON (または2)

次の例では、ユーザー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がパフォーマンス統計レルムの所有者としての役割を果す前に、Check Conf Accessルール・セットをトリガーします。

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

この例では、共通ユーザーC##HR_ADMINに共通レルムHR Statistics Realmへのアクセス権を共通で付与する方法を示します。このプロシージャを実行するユーザーはCDBルートにいる必要があり、ルール・セットはアプリケーション・ルートに存在する共通ルール・セットである必要があります。

BEGIN
 DBMS_MACADM.ADD_AUTH_TO_REALM(
  realm_name    => 'HR Statistics Realm', 
  grantee       => 'C##HR_ADMIN', 
  rule_set_name => 'Check Access',
  auth_options  => DBMS_MACUTL.G_REALM_AUTH_OWNER,
 auth_scope    => DBMS_MACUTL.G_SCOPE_COMMON);
END;
/

この例では、共通ユーザーC##HR_CLERKに共通レルムHR Statistics Realmへのアクセス権をローカルで付与する方法を示します。このプロシージャを実行するユーザーは、認可を適用するのと同じPDBにいる必要があります。既存のPDBを確認するには、DBA_PDBSデータ・ディクショナリ・ビューを問い合せます。ルール・セットはローカル・ルール・セットである必要があります。

BEGIN
 DBMS_MACADM.ADD_AUTH_TO_REALM(
  realm_name    => 'HR Statistics Realm', 
  grantee       => 'C##HR_CLERK', 
  rule_set_name => 'Check Access',
  auth_options  => DBMS_MACUTL.G_REALM_AUTH_OWNER,
  auth_scope    => DBMS_MACUTL.G_SCOPE_LOCAL);
END;
/

関連トピック

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

パラメータ

表14-2 ADD_OBJECT_TO_REALMのパラメータ

パラメータ 説明

realm_name

レルム名。

現在のデータベース・インスタンスで既存のレルムを検索するには、DBA_DV_REALMビューを問い合せます。

object_owner

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

使用可能なユーザーを検索するには、DBA_USERSビューを問い合せます。

特定のユーザーまたはロールの認可を検索するには、DVA_DV_REALM_AUTHビューを問い合せます。

object_name

オブジェクト名。(ワイルドカード%を使用できます)。DBMS_MACUTL.G_ALL_OBJECT定数も使用できます。

使用可能なオブジェクトを検索するには、ALL_OBJECTSビューを問い合せます。

既存のレルムで保護されるオブジェクトを検索するには、DBA_DV_REALM_OBJECTビューを問い合せます。

object_type

TABLEINDEXROLEなどのオブジェクト・タイプ。(ワイルドカード%を使用できます)。

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

BEGIN
 DBMS_MACADM.ADD_OBJECT_TO_REALM(
  realm_name    => 'HR Apps',
  object_owner  => '%',
  object_name   => 'HR_SELECT_ROLE',
  object_type   => 'ROLE');
END;
/

14.3 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,
 realm_type    IN NUMBER DEFAULT,
 realm_scope   IN NUMBER DEFAULT
 pl_sql_stack  IN BOOLEAN DEFAULT); 

パラメータ

表14-3 CREATE_REALMのパラメータ

パラメータ 説明

realm_name

レルム名(大/小文字混在で最大128文字)。保護されているアプリケーションの名前をレルム名として使用することをお薦めします(人事アプリケーションにはhr_appなど)。このパラメータは必須です。

現在のデータベース・インスタンスで既存のレルムを検索するには、DBA_DV_REALMビューを問い合せます。

description

レルムの目的の説明(大/小文字混在で最大1024文字)。このパラメータは省略可能です。

説明には、指定されたアプリケーション保護のビジネス目標や、レルムによる保護の重要性を示すその他のすべてのセキュリティ・ポリシーを含めることができます。また、レルムに対して認可されているユーザーとその目的、および緊急時の認可についても説明できます。

enabled

次のいずれかの必須オプションを指定して、レルムのステータスを設定します。

  • レルム・チェックを有効にするには(デフォルト)、DBMS_MACUTL.G_YESまたはy

  • シミュレーション・ログでの違反の取得など、すべてのレルム・チェックを無効にするには、DBMS_MACUTL.G_NOまたはn

  • SQL文の実行を可能にするがシミュレーション・ログで違反を捕捉するには、DBMS_MACUTL.G_SIMULATIONまたはs

audit_options

省略するか、DBMS_MACUTL.G_REALM_AUDIT_OFF (デフォルト)を指定します。

Oracle Databaseリリース23c以降、従来の監査はサポートされなくなりました。DBMS_MACUTL.G_REALM_AUDIT_OFF設定のみがaudit_optionsパラメータに使用できます。レルムを監査するには、統合監査を使用する必要があります。レルムの統合監査ポリシーを作成する方法の例は、『Oracle Databaseセキュリティ・ガイド』を参照してください。

realm_type

次のオプションのいずれかを指定します。

  • 0: 必須レルムのチェックを無効にします。

  • 1: レルムのオブジェクトに対する必須レルムのチェックを有効にします。レルム所有者またはレルム参加者のみが、レルム内のオブジェクトにアクセスできます。レルム所有者や参加者ではないオブジェクト所有者およびオブジェクト権限ユーザーはアクセスできません。

関連トピックも参照してください。

realm_scope

このプロシージャの実行方法を決定します。デフォルトはローカルです。オプションは次のとおりです。

  • レルムが現在のPDBでローカルである必要がある場合は、DBMS_MACUTL.G_SCOPE_LOCAL (または1)。

  • レルムがアプリケーション・ルート内にある必要がある場合は、DBMS_MACUTL.G_SCOPE_COMMON (または2)。この設定では、関連付けられたすべてのPDB内のレルムが複製されます。

アプリケーション・ルートで共通レルムを作成し、関連付けられたPDBにそれを表示できるようにする場合は、アプリケーションを同期させる必要があります。たとえば:

ALTER PLUGGABLE DATABASE APPLICATION saas_sales_app SYNC;

pl_sql_stack

シミュレーション・モードが有効な場合に、失敗した操作のPL/SQLスタックを記録するかどうかを指定します。PL/SQLスタックを記録する場合はTRUEと入力し、記録しない場合はFALSEと入力します。デフォルトはFALSEです。

次の例では、必須レルム・チェックを有効にして使用するレルムを作成し、PL/SQLスタックを記録する方法を示します。

BEGIN
 DBMS_MACADM.CREATE_REALM(
  realm_name     => 'HR Apps',
  description    => 'Realm to protect the HR schema',
  enabled        => DBMS_MACUTL.G_YES,
  audit_options  => DBMS_MACUTL.G_REALM_AUDIT_OFF,
  realm_type     => 1,
  pl_sql_stack   => TRUE);
END;
/

この例では、前の例を少し変更したものを作成する方法を示しますが、アプリケーション・ルートにある共通レルムとして作成する方法となります。このレルムを作成するユーザーは、共通ユーザーである必要があり、アプリケーション・ルートでプロシージャを実行する必要があります。

BEGIN
 DBMS_MACADM.CREATE_REALM(
  realm_name     => 'HR Apps',
  description    => 'Realm to protect the HR schema',
  enabled        => DBMS_MACUTL.G_YES,
  audit_options  => DBMS_MACUTL.G_REALM_AUDIT_OFF,
  realm_type     => 1,
  realm_scope    => DBMS_MACUTL.G_SCOPE_COMMON);
END;
/

この例では、前の例のローカル・バージョンを作成する方法を示します。このレルムを作成するユーザーは、レルムがあるPDBにいる必要があります。既存のPDBを確認するには、DBA_PDBSデータ・ディクショナリ・ビューを問い合せます。

BEGIN
 DBMS_MACADM.CREATE_REALM(
  realm_name     => 'HR Apps',
  description    => 'Realm to protect the HR schema',
  enabled        => DBMS_MACUTL.G_YES,
  audit_options  => DBMS_MACUTL.G_REALM_AUDIT_OFF,
  realm_type     => 1,
  realm_scope    => DBMS_MACUTL.G_SCOPE_LOCAL);
END;
/

14.4 DELETE_AUTH_FROM_REALMプロシージャ

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

構文

DBMS_MACADM.DELETE_AUTH_FROM_REALM(
 realm_name    IN VARCHAR2,
 grantee       IN VARCHAR2,
 auth_scope    IN NUMBER DEFAULT);  

パラメータ

表14-4 DELETE_AUTH_FROM_REALMのパラメータ

パラメータ 説明

realm_name

レルム名。

現在のデータベース・インスタンスで既存のレルムを検索するには、DBA_DV_REALMビューを問い合せます。

grantee

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

特定のユーザーまたはロールの認可を検索するには、DVA_DV_REALM_AUTHビューを問い合せます。

auth_scope

このプロシージャの実行方法を決定します。デフォルトはローカルです。オプションは次のとおりです。

  • レルムが現在のPDBのローカルで認可されている場合は、DBMS_MACUTL.G_SCOPE_LOCAL (または1)

  • レルムがアプリケーション・ルートで認可されている場合は、DBMS_MACUTL.G_SCOPE_COMMON (または2

BEGIN
DBMS_MACADM.DELETE_AUTH_FROM_REALM(
 realm_name     => 'HR Apps',
 grantee        => 'PSMITH',
 auth_scope     => DBMS_MACUTL.G_SCOPE_LOCAL);
END;
/

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

パラメータ

表14-5 DELETE_OBJECT_FROM_REALMのパラメータ

パラメータ 説明

realm_name

レルム名。

現在のデータベース・インスタンスで既存のレルムを検索するには、DBA_DV_REALMビューを問い合せます。

object_owner

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

使用可能なユーザーを検索するには、DBA_USERSビューを問い合せます。

object_name

オブジェクト名。(ワイルドカード%を使用できます)。DBMS_MACUTL.G_ALL_OBJECT定数も使用できます。

既存のレルムで保護されるオブジェクトを検索するには、DBA_DV_REALM_OBJECTビューを問い合せます。

関連トピックも参照してください。

object_type

TABLEINDEXROLEなどのオブジェクト・タイプ。(ワイルドカード%を使用できます)。

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

関連トピックも参照してください。

BEGIN
 DBMS_MACADM.DELETE_OBJECT_FROM_REALM(
  realm_name     => 'HR Apps',
  object_owner   => '%',
  object_name    => 'HR_SELECT_ROLE',
  object_type    => '%');
END;
/

14.6 DELETE_REALMプロシージャ

DELETE_REALMプロシージャは、レルム(認可されるユーザーと保護対象オブジェクトを指定するその関連構成情報を含む)を削除します。

このプロシージャでは、実際のデータベース・オブジェクトまたはユーザーは削除されません。

レルムに対して認可されているユーザーを確認するには、DBA_DV_REALM_AUTHビューに問い合せます。レルムで保護されるオブジェクトを確認するには、DBA_DV_REALM_OBJECTビューに問い合せます。

構文

DBMS_MACADM.DELETE_REALM(
  realm_name IN VARCHAR2); 

パラメータ

表14-6 DELETE_REALMのパラメータ

パラメータ 説明

realm_name

レルム名。

現在のデータベース・インスタンスで既存のレルムを検索するには、DBA_DV_REALMビューを問い合せます。

EXEC DBMS_MACADM.DELETE_REALM ('HR Apps');

14.7 DELETE_REALM_CASCADEプロシージャ

DELETE_REALM_CASCADEプロシージャは、レルム(認可されるユーザーと保護対象オブジェクトを指定するレルム関連Database Vault構成情報を含む)を削除します。

DBA_DV_REALM_AUTHビューは、レルムで認可されるユーザーを示し、DBA_DV_REALM_OBJECTビューは、保護対象オブジェクトを示します。

実際のデータベース・オブジェクトまたはユーザーは削除されません。このプロシージャは、DELETE_REALMプロシージャと同様に動作します。(以前のリリースでは同じではありませんでしたが、現在は同じです。どちらも下位互換性のために保持されています。)レルム関連のオブジェクトのリストを確認するには、DBA_DV_REALMビューに問い合せます。その認可を確認するには、DBA_DV_REALM_AUTHに問い合せます。

構文

DBMS_MACADM.DELETE_REALM_CASCADE(
  realm_name IN VARCHAR2); 

パラメータ

表14-7 DELETE_REALM_CASCADEのパラメータ

パラメータ 説明

realm_name

レルム名。

現在のデータベース・インスタンスで既存のレルムを検索するには、DBA_DV_REALMビューを問い合せます。

BEGIN
 DBMS_MACADM.RENAME_REALM(
  realm_name  => 'HR Apps',
  new_name    => 'HR and HCM Apps');
END;
/

14.8 RENAME_REALMプロシージャ

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

構文

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

パラメータ

表14-8 RENAME_REALMのパラメータ

パラメータ 説明

realm_name

現在のレルム名。

現在のデータベース・インスタンスで既存のレルムを検索するには、DBA_DV_REALMビューを問い合せます。

new_name

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

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

14.9 UPDATE_REALMプロシージャ

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

レルムの現在の設定について情報を検索するには、DVSYS.DV$REALMビューを問い合せます。

レルムの監査オプションを更新すると、既存の従来の監査レコードは無効になります。新しい監査レコードを取得するには、統合監査ポリシーを作成する必要があります。

構文

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

パラメータ

表14-9 UPDATE_REALMのパラメータ

パラメータ 説明

realm_name

レルム名。

現在のデータベース・インスタンスで既存のレルムを検索するには、DBA_DV_REALMビューを問い合せます。

description

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

enabled

次のいずれかのオプションを指定してレルムのステータスを設定します。
  • レルム・チェックを有効にするには、DBMS_MACUTL.G_YESまたはy

  • シミュレーション・ログでの違反の取得など、すべてのレルム・チェックを無効にするには、DBMS_MACUTL.G_NOまたはn

  • SQL文の実行を可能にするがシミュレーション・ログで違反を捕捉するには、DBMS_MACUTL.G_SIMULATIONまたはs

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

audit_options

次のアクションのいずれかを実行します。

  • このレルム・ポリシーに対して従来の監査を無効にするには、DBMS_MACUTL.G_REALM_AUDIT_OFFを設定します。
  • この従来の監査設定を引き続き使用する場合は、現在の既存のaudit_options設定をそのままにします。そうするには、NULLを指定するか、このレルムの現在の既存のaudit_optionsと同じ設定を指定するか、単にaudit_optionsを指定しないでください(デフォルトはNULL)。

Oracle Database 23c以降、従来の監査はサポートされなくなりました。レルムを監査するには、統合監査を使用する必要があります。レルムの統合監査ポリシーを作成する方法の例は、『Oracle Databaseセキュリティ・ガイド』を参照してください。

realm_type

realm_typeパラメータを指定しない場合、Oracle Database Vaultは現在のrealm_type設定を更新しません。

次のオプションのいずれかを指定します。

  • 0: 必須レルムのチェックのない通常のレルムになるようにレルムを設定します。

  • 1: レルムのオブジェクトに対する必須レルムのチェックを有効にします。レルム所有者またはレルム参加者のみが、レルム内のオブジェクトにアクセスできます。レルム所有者や参加者ではないオブジェクト所有者およびオブジェクト権限ユーザーはアクセスできません。

関連トピックも参照してください。

pl_sql_stack

シミュレーション・モードが有効な場合に、失敗した操作のPL/SQLスタックが記録されているかどうかを示します。TRUEはPL/SQLスタックが記録されていることを示し、FALSEはPL/SQLスタックが記録されていないことを示します。

BEGIN
 DBMS_MACADM.UPDATE_REALM(
  realm_name      => 'HR Apps',
  description     => 'Realm to protect the HR schema',
  enabled         => DBMS_MACUTL.G_YES,
  audit_options   => DBMS_MACUTL.G_REALM_AUDIT_OFF,
  realm_type      => 1);
END;
/

レルムのaudit_optionsパラメータを変更しなかった場合は、既存の従来の監査ポリシーが引き続き有効になります。レルムのaudit_optionsパラメータを更新した場合は、リリース23c以降で従来の監査がサポートされなくなるため、この監査が無効になります。新しい監査レコードを取得するには、統合監査ポリシーを作成して有効にします。たとえば:

CREATE AUDIT POLICY hr_app_aud_pol
 ACTIONS COMPONENT=DV Realm Violation ON "HR Apps";

AUDIT POLICY hr_app_aud_pol EXCEPT psmith;

UNIFIED_AUDIT_TRAILデータ・ディクショナリ・ビューを問い合せることで、監査レコードを確認できます。これがどのように機能するかについては、Oracle Oracle Databaseセキュリティ・ガイドを参照してください。

14.10 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,
 auth_scope    IN NUMBER DEFAULT); 

パラメータ

表14-10 UPDATE_REALM_AUTHのパラメータ

パラメータ 説明

realm_name

レルム名。

現在のデータベース・インスタンスで既存のレルムを検索するには、DBA_DV_REALMビューを問い合せます。

grantee

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

現在のデータベース・インスタンスで使用可能なユーザーとロールを検索するには、DBA_USERSおよびDBA_ROLESデータ・ディクショナリ・ビューを問い合せます。

特定のユーザーまたはロールの認可を検索するには、DVA_DV_REALM_AUTHビューを問い合せます。

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

rule_set_name

オプション。ランタイムでチェックするルール・セット。レルム認可は、ルール・セットの評価がTRUEの場合のみ有効です。

使用可能なルール・セットを確認するには、DBA_DV_RULE_SETビューに問い合せます。ルール・セットに関連付けられているルールを検索するには、DBA_DB_RULE_SET_RULEビューに問い合せます。

auth_options

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

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

  • DBMS_MACUTL.G_REALM_AUTH_OWNER: 所有者。このアカウントまたはロールには、レルムの参加者と同じ認可に加えて、レルム保護オブジェクトに対するレルム・セキュア・ロールおよび権限を付与または取り消す認可があります。1つのレルムに複数の所有者を設定できます。

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

realm_auth

このプロシージャの実行方法を決定します。デフォルトはローカルです。オプションは次のとおりです。

  • レルムが現在のPDBのローカルで認可されている場合は、DBMS_MACUTL.G_SCOPE_LOCAL (または1)

  • レルムがアプリケーション・ルートで認可されている場合は、DBMS_MACUTL.G_SCOPE_COMMON (または2)

BEGIN
 DBMS_MACADM.UPDATE_REALM_AUTH(
  realm_name    => 'HR Apps',
  grantee       => 'HR_SELECT_ROLE',
  rule_set_name => 'Check Conf Access',
  auth_options  => DBMS_MACUTL.G_REALM_AUTH_OWNER);
END;
/