15 Oracle Database VaultレルムのAPI
DBMS_MACADM
PL/SQLパッケージでは、Oracle Database Vaultレルムを構成できます。
DV_OWNER
ロールまたはDV_ADMIN
ロールを付与されているユーザーのみがこれらのプロシージャを使用できます。これらのプロシージャで使用できる定数の詳細は、表21-1を参照してください。
- ADD_AUTH_TO_REALMプロシージャ
ADD_AUTH_TO_REALM
プロシージャは、所有者または参加者としてレルムにアクセスする権限をユーザーまたはロールに付与します。共通およびローカルの両方のレルムを認証できます。 - ADD_OBJECT_TO_REALMプロシージャ
ADD_OBJECT_TO_REALM
プロシージャは、レルム保護のために一連のオブジェクトを登録します。 - CREATE_REALMプロシージャ
CREATE_REALM
プロシージャは、共通およびローカルの両方のレルムを作成します。 - DELETE_AUTH_FROM_REALMプロシージャ
DELETE_AUTH_FROM_REALM
プロシージャは、レルムにアクセスするためのユーザーまたはロールの認可を削除します。 - DELETE_OBJECT_FROM_REALMプロシージャ
DELETE_OBJECT_FROM_REALM
プロシージャは、レルム保護から一連のオブジェクトを削除します。 - DELETE_REALMプロシージャ
DELETE_REALM
プロシージャは、レルム(認可されるユーザーと保護対象オブジェクトを指定するその関連構成情報を含む)を削除します。 - DELETE_REALM_CASCADEプロシージャ
DELETE_REALM_CASCADE
プロシージャは、レルム(認可されるユーザーと保護対象オブジェクトを指定するレルム関連Database Vault構成情報を含む)を削除します。 - RENAME_REALMプロシージャ
RENAME_REALM
プロシージャは、レルムの名前を変更します。名前の変更は、そのレルムが使用されているすべての箇所に反映されます。 - UPDATE_REALMプロシージャ
UPDATE_REALM
プロシージャはレルムを更新します。 - UPDATE_REALM_AUTHプロシージャ
UPDATE_REALM_AUTH
プロシージャは、レルムにアクセスするためのユーザーまたはロールの認可を更新します。
15.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);
パラメータ
表15-1 ADD_AUTH_TO_REALMのパラメータ
パラメータ | 説明 |
---|---|
|
レルム名(大/小文字混在で128文字)。 現在のデータベース・インスタンスで既存のレルムを検索するには、 |
|
所有者または参加者として認可するユーザーまたはロール名。 現在のデータベース・インスタンスで既存のユーザーとロールを検索するには、 特定のユーザーまたはロールの認可を検索するには、 権限管理で使用されている既存のセキュア・アプリケーション・ロールを確認するには、 |
|
オプション。ランタイムでチェックするルール・セット。レルム認可は、ルール・セットの評価が 使用可能なルール・セットを確認するには、 |
|
オプション。レルムを認可する次のオプションのうち、1つを指定します。
1つのレルムには複数の所有者または参加者を設定できます。 参加者と所有者の詳細は、「関連トピック」を参照してください。 |
|
このプロシージャの実行方法を決定します。デフォルトは
|
例
次の例では、ユーザーPSMITH
をHR Apps
レルムで参加者として認可します。デフォルトは参加者としてユーザーを認可することであるため、auth_options
パラメータを省略できます。
BEGIN DBMS_MACADM.ADD_AUTH_TO_REALM( realm_name => 'HR Apps', grantee => 'PSMITH'); END; /
次の例では、ユーザーPSMITH
をHR Apps
レルムの所有者として設定します。
BEGIN DBMS_MACADM.ADD_AUTH_TO_REALM( realm_name => 'HR Apps', grantee => 'PSMITH', auth_options => DBMS_MACUTL.G_REALM_AUTH_OWNER); END; /
次の例では、ユーザーPSMITH
がHR Apps
レルムの所有者としての役割を果たす前に、Check Conf Access
ルール・セットをトリガーします。
BEGIN DBMS_MACADM.ADD_AUTH_TO_REALM( realm_name => 'HR Apps', grantee => 'PSMITH', 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; /
関連トピック
親トピック: Oracle Database VaultレルムのAPI
15.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);
パラメータ
表15-2 ADD_OBJECT_TO_REALMのパラメータ
パラメータ | 説明 |
---|---|
|
レルム名(大/小文字混在で128文字)。 現在のデータベース・インスタンスで既存のレルムを検索するには、 |
|
レルムに追加するオブジェクトの所有者。ロールをレルムに追加する場合、ロールに所有者はいないため、ロールのオブジェクト所有者は 使用可能なユーザーを検索するには、 特定のユーザーまたはロールの認可を検索するには、 |
|
オブジェクト名。指定したオブジェクト所有者のすべてのオブジェクト(ロールを除く)を指定するために、ワイルドカード%を使用できます。 使用可能なオブジェクトを検索するには、 既存のレルムで保護されるオブジェクトを検索するには、 |
|
|
例
BEGIN DBMS_MACADM.ADD_OBJECT_TO_REALM( realm_name => 'HR Apps', object_owner => '%', object_name => 'HR_SELECT_ROLE', object_type => 'ROLE'); END; /
関連トピック
親トピック: Oracle Database VaultレルムのAPI
15.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 DEFAULT, enabled IN VARCHAR2 DEFAULT, audit_options IN NUMBER DEFAULT, realm_type IN NUMBER DEFAULT, realm_scope IN NUMBER DEFAULT, pl_sql_stack IN BOOLEAN DEFAULT);
パラメータ
表15-3 CREATE_REALMのパラメータ
パラメータ | 説明 |
---|---|
|
レルム名(大/小文字混在で最大128文字)。保護されているアプリケーションの名前をレルム名として使用することをお薦めします(人事アプリケーションには 現在のデータベース・インスタンスで既存のレルムを検索するには、 |
|
レルムの目的の説明(大/小文字混在で最大1024文字)。この設定を省略した場合、空の文字列にデフォルト設定されます。 説明には、指定されたアプリケーション保護のビジネス目標や、レルムによる保護の重要性を示すその他のすべてのセキュリティ・ポリシーを含めることができます。また、レルムに対して認可されているユーザーとその目的、および緊急時の認可についても説明できます。 |
|
レルム・チェックおよびSQL文によるシミュレーション・ログ違反の取得機能を制御します。この設定を省略した場合、
|
|
Oracle Databaseリリース23ai以降、従来の監査はサポートされなくなりました。 |
|
レルムが通常と必須のどちらであるかを制御します。この設定を省略した場合、
|
|
このプロシージャの実行方法を決定します。デフォルトは
アプリケーション・ルートで共通レルムを作成し、関連付けられたPDBにそれを表示できるようにする場合は、アプリケーションを同期させる必要があります。たとえば: ALTER PLUGGABLE DATABASE APPLICATION saas_sales_app SYNC; |
|
シミュレーション・モードが有効な場合に、失敗した操作のPL/SQLスタックを記録するかどうかを指定します。この設定を省略した場合、
|
例
次の例では、必須レルム・チェックを有効にして使用するレルムを作成し、PL/SQLスタックを記録する方法を示します。NULL
はDBMS_MACUTL.G_REALM_AUDIT_OFF
にデフォルト設定されるため、監査は無効です。
BEGIN DBMS_MACADM.CREATE_REALM( realm_name => 'HR Apps', description => 'Realm to protect the HR schema', enabled => DBMS_MACUTL.G_YES, audit_options => NULL, realm_type => DBMS_MACADM.MANDATORY_REALM, pl_sql_stack => TRUE); END; /
この例では、前の例を少し変更したものを作成する方法を示しますが、アプリケーション・ルートにある共通レルムとして作成する方法となります。このレルムを作成するユーザーは、共通ユーザーである必要があり、アプリケーション・ルートでプロシージャを実行する必要があります。enabled
設定は省略されるため、DBMS_MACUTL.G_YES
にデフォルト設定されます。
BEGIN DBMS_MACADM.CREATE_REALM( realm_name => 'HR Apps', description => 'Realm to protect the HR schema', audit_options => NULL, realm_type => DBMS_MACADM.MANDATORY_REALM, 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', audit_options => DBMS_MACUTL.G_REALM_AUDIT_OFF, realm_type => DBMS_MACADM.MANDATORY_REALM, realm_scope => DBMS_MACUTL.G_SCOPE_LOCAL); END; /
15.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);
パラメータ
表15-4 DELETE_AUTH_FROM_REALMのパラメータ
パラメータ | 説明 |
---|---|
|
レルム名。 現在のデータベース・インスタンスで既存のレルムを検索するには、 |
|
ユーザーまたはロール名。 特定のユーザーまたはロールの認可を検索するには、 |
|
このプロシージャの実行方法を決定します。デフォルトはローカルです。オプションは次のとおりです。
|
例
BEGIN DBMS_MACADM.DELETE_AUTH_FROM_REALM( realm_name => 'HR Apps', grantee => 'PSMITH', auth_scope => DBMS_MACUTL.G_SCOPE_LOCAL); END; /
親トピック: Oracle Database VaultレルムのAPI
15.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);
パラメータ
表15-5 DELETE_OBJECT_FROM_REALMのパラメータ
パラメータ | 説明 |
---|---|
|
レルム名。 現在のデータベース・インスタンスで既存のレルムを検索するには、 |
|
レルムに追加されたオブジェクトの所有者。 使用可能なユーザーを検索するには、 |
|
オブジェクト名。(ワイルドカード%を使用できます)。 既存のレルムで保護されるオブジェクトを検索するには、 関連トピックも参照してください。 |
|
関連トピックも参照してください。 |
例
BEGIN DBMS_MACADM.DELETE_OBJECT_FROM_REALM( realm_name => 'HR Apps', object_owner => '%', object_name => 'HR_SELECT_ROLE', object_type => '%'); END; /
関連トピック
親トピック: Oracle Database VaultレルムのAPI
15.6 DELETE_REALMプロシージャ
DELETE_REALM
プロシージャは、レルム(認可されるユーザーと保護対象オブジェクトを指定するその関連構成情報を含む)を削除します。
このプロシージャでは、実際のデータベース・オブジェクトまたはユーザーは削除されません。
レルムに対して認可されているユーザーを確認するには、DBA_DV_REALM_AUTH
ビューに問い合せます。レルムで保護されるオブジェクトを確認するには、DBA_DV_REALM_OBJECT
ビューに問い合せます。
構文
DBMS_MACADM.DELETE_REALM( realm_name IN VARCHAR2);
パラメータ
表15-6 DELETE_REALMのパラメータ
パラメータ | 説明 |
---|---|
|
レルム名。 現在のデータベース・インスタンスで既存のレルムを検索するには、 |
例
EXEC DBMS_MACADM.DELETE_REALM ('HR Apps');
親トピック: Oracle Database VaultレルムのAPI
15.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);
パラメータ
表15-7 DELETE_REALM_CASCADEのパラメータ
パラメータ | 説明 |
---|---|
|
レルム名。 現在のデータベース・インスタンスで既存のレルムを検索するには、 |
例
BEGIN DBMS_MACADM.RENAME_REALM( realm_name => 'HR Apps', new_name => 'HR and HCM Apps'); END; /
親トピック: Oracle Database VaultレルムのAPI
15.8 RENAME_REALMプロシージャ
RENAME_REALM
プロシージャは、レルムの名前を変更します。名前の変更は、そのレルムが使用されているすべての箇所に反映されます。
構文
DBMS_MACADM.RENAME_REALM( realm_name IN VARCHAR2, new_name IN VARCHAR2);
パラメータ
表15-8 RENAME_REALMのパラメータ
パラメータ | 説明 |
---|---|
|
現在のレルム名。 現在のデータベース・インスタンスで既存のレルムを検索するには、 |
|
新しいレルム名(大/小文字混在で最大128文字)。 |
例
BEGIN DBMS_MACADM.RENAME_REALM( realm_name => 'HR Apps', new_name => 'HR and FIN Apps'); END; /
親トピック: Oracle Database VaultレルムのAPI
15.9 UPDATE_REALMプロシージャ
UPDATE_REALM
プロシージャはレルムを更新します。
レルムの現在の設定に関する情報を確認するには、DVSYS.DV$REALM
またはDBA_DV_REALM
ビューに問い合せます。
レルムの監査オプションを更新すると、既存の従来の監査レコードは無効になります。新しい監査レコードを取得するには、統合監査ポリシーを作成する必要があります。
構文
DBMS_MACADM.UPDATE_REALM( realm_name IN VARCHAR2, description IN VARCHAR2 DEFAULT, enabled IN VARCHAR2 DEFAULT, audit_options IN NUMBER DEFAULT, realm_type IN NUMBER DEFAULT, pl_sql_stack IN BOOLEAN DEFAULT);
パラメータ
表15-9 UPDATE_REALMのパラメータ
パラメータ | 説明 |
---|---|
|
レルム名。 現在のデータベース・インスタンスで既存のレルムを検索するには、 |
|
レルムの目的の説明(大/小文字混在で最大1024文字)。この設定を変更しない場合は、省略するか、 |
|
レルムの有効化を制御します。この設定を変更しない場合は、省略するか、
NULL に設定します。
|
|
次のアクションのいずれかを実行します。
Oracle Database 23ai以降、従来の監査はサポートされなくなりました。レルムを監査するには、統合監査を使用する必要があります。レルムの統合監査ポリシーを作成する方法の例は、『Oracle Databaseセキュリティ・ガイド』を参照してください。 |
|
レルムが通常であるか必須であるかを決定します。この設定を変更しない場合は、省略するか、
|
|
シミュレーション・モードが有効な場合に、失敗した操作のPL/SQLスタックを記録するかどうかを指定します。この設定を変更しない場合は、省略するか、
|
例
description
、enabled
およびaudit_options
の設定は、値を変更する必要がないため、省略されています。
BEGIN DBMS_MACADM.UPDATE_REALM( realm_name => 'HR Apps', realm_type => DBMS_MACADM.MANDATORY_REALM); END; /
レルムのaudit_options
パラメータを変更しなかった場合は、既存の従来の監査ポリシーが引き続き有効になります。レルムのaudit_options
パラメータを更新した場合は、リリース23ai以降で従来の監査がサポートされなくなるため、この監査が無効になります。新しい統合監査ポリシーを作成して有効にするには、ユーザーにAUDIT_ADMIN
Oracle DatabaseロールおよびAUDIT_ADMIN
Oracle Database Vault認可が付与されている必要があります。新しい統合監査ポリシーの作成については、次の例を参照してください:
CREATE AUDIT POLICY hr_app_aud_pol
ACTIONS COMPONENT=DV Realm Violation ON "HR Apps";
AUDIT POLICY hr_app_aud_pol;
UNIFIED_AUDIT_TRAIL
データ・ディクショナリ・ビューを問い合せることで、監査レコードを確認できます。これがどのように機能するかについては、Oracle Oracle Databaseセキュリティ・ガイドを参照してください。
15.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);
パラメータ
表15-10 UPDATE_REALM_AUTHのパラメータ
パラメータ | 説明 |
---|---|
|
レルム名。 現在のデータベース・インスタンスで既存のレルムを検索するには、 |
|
ユーザーまたはロール名。 現在のデータベース・インスタンスで使用可能なユーザーとロールを検索するには、DBA_USERSおよびDBA_ROLESデータ・ディクショナリ・ビューを問い合せます。 特定のユーザーまたはロールの認可を検索するには、 権限管理で使用されている既存のセキュア・アプリケーション・ロールを確認するには、 |
|
オプション。ランタイムでチェックするルール・セット。レルム認可は、ルール・セットの評価が 使用可能なルール・セットを確認するには、 |
|
オプション。レルムを認可する次のオプションのうち、1つを指定します。
|
|
このプロシージャの実行方法を決定します。デフォルトはローカルです。オプションは次のとおりです。
|
例
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; /
親トピック: Oracle Database VaultレルムのAPI