17 Oracle Database VaultファクタのAPI
DBMS_MACADM PL/SQLパッケージには、ファクタ関連のOracle Database Vaultルール・プロシージャおよび関数があり、DVFには、ファクタを管理する関数があります。
               
- DBMS_MACADMファクタ・プロシージャおよびファンクション
 DBMS_MACADMPL/SQLパッケージには、ファクタを構成するプロシージャおよびファンクションが用意されています。
- Oracle Database VaultランタイムのPL/SQLプロシージャおよびファンクション
 Oracle Database Vaultには手続き型インタフェースが用意されており、Database Vaultセキュリティ・オプションの管理およびDatabase Vaultセキュリティの実施の管理に使用できます。
- Oracle Database Vault DVF PL/SQLファクタ・ファンクション
 DBMS_MACADMPL/SQLパッケージを使用して様々なファクタを管理する際、Oracle Database VaultによってDVFスキーマ・ファンクションが維持されます。
17.1 DBMS_MACADMファクタのプロシージャおよびファンクション
DBMS_MACADM PL/SQLパッケージには、ファクタを構成するプロシージャおよびファンクションが用意されています。 
                  
DV_OWNERロールまたはDV_ADMINロールを付与されているユーザーのみがこれらのプロシージャとファンクションを使用できます。
                  
- ADD_FACTOR_LINKプロシージャ
 ADD_FACTOR_LINKプロシージャは、2つのファクタの親子関係を指定します。
- ADD_POLICY_FACTORプロシージャ
 ADD_POLICY_FACTORプロシージャは、ファクタのラベルをポリシーのOracle Label Securityラベルに含めることを指定します。
- CHANGE_IDENTITY_FACTORプロシージャ
 CHANGE_IDENTITY_FACTORプロシージャは、アイデンティティを別ファクタと関連付けます。
- CHANGE_IDENTITY_VALUEプロシージャ
 CHANGE_IDENTITY_FACTORプロシージャは、アイデンティティの値を更新します。
- CREATE_DOMAIN_IDENTITYプロシージャ
 CREATE_DOMAIN_IDENTITYプロシージャは、Oracle Real Application Clusters (Oracle RAC)およびOracle Label Securityに使用されます。
- CREATE_FACTORプロシージャ
 CREATE_FACTORプロシージャはファクタを作成します。
- CREATE_FACTOR_TYPEプロシージャ
 CREATE_FACTOR_TYPEプロシージャは、ユーザー定義のファクタ・タイプを作成します。
- CREATE_IDENTITYプロシージャ
 CREATE_IDENTITYプロシージャは、指定されたファクタに対してアイデンティティおよび関連付けられた信頼レベルを割り当てます。
- CREATE_IDENTITY_MAPプロシージャ
 CREATE_IDENTITY_MAPプロシージャは、リンクされた子ファクタ(サブファクタ)の値からファクタのアイデンティティを導出できるテストを定義します。
- DELETE_FACTORプロシージャ
 DELETE_FACTORプロシージャはファクタを削除します。
- DELETE_FACTOR_LINKプロシージャ
 DELETE_FACTOR_LINKプロシージャは、2つのファクタの親子関係を削除します。
- DELETE_FACTOR_TYPEプロシージャ
 DELETE_FACTOR_TYPEプロシージャはファクタ・タイプを削除します。
- DELETE_IDENTITYプロシージャ
 DELETE_IDENTITYプロシージャは、既存のファクタからアイデンティティを削除します。
- DELETE_IDENTITY_MAPプロシージャ
 DELETE_IDENTITY_MAPプロシージャは、ファクタのアイデンティティ・マップを削除します。
- DROP_DOMAIN_IDENTITYプロシージャ
 DROP_DOMAIN_IDENTITYプロシージャは、Oracle Real Application Clustersデータベース・ノードをドメインから削除します。
- GET_SESSION_INFOファンクション
 GET_SESSION_INFOファンクションは、現行セッションについてSYS.V_$SESSIONシステム表の情報を返します。
- GET_INSTANCE_INFOファンクション
 GET_INSTANCE_INFOファンクションは、現行のデータベース・インスタンスについてSYS.V_$INSTANCEシステム表の情報を返します。
- RENAME_FACTORプロシージャ
 RENAME_FACTORプロシージャは、ファクタの名前を変更します。名前の変更は、そのファクタが使用されているすべての箇所に反映されます。
- RENAME_FACTOR_TYPEプロシージャ
 RENAME_FACTORプロシージャは、ファクタ・タイプの名前を変更します。名前の変更は、そのファクタ・タイプが使用されているすべての箇所に反映されます。
- UPDATE_FACTORプロシージャ
 UPDATE_FACTORプロシージャは、ファクタ・タイプの説明を更新します。
- UPDATE_FACTOR_TYPEプロシージャ
 UPDATE_FACTOR_TYPEプロシージャはファクタ・タイプを更新します。
- UPDATE_IDENTITYプロシージャ
 UPDATE_IDENTITYプロシージャは、ファクタ・アイデンティティの信頼レベルを更新します。
17.1.1 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);
パラメータ
表17-1 ADD_FACTOR_LINKのパラメータ
| パラメータ | 説明 | 
|---|---|
| 
 | 親ファクタ名。 現行のデータベース・インスタンスで既存の親子ファクタを確認するには、「DBA_DV_FACTOR_LINKビュー」で説明されている | 
| 
 | 子ファクタ名。 | 
| 
 | 親ファクタにリンクされる子ファクタを、Oracle Label Security統合での親ファクタのラベルに含めることを示します。 ファクタに関連付けられているOracle Label Securityポリシーおよびラベルを確認するには、「Oracle Database Vaultのデータ・ディクショナリ・ビュー」で説明されている次のビューを問い合せます。 
 | 
例
BEGIN DBMS_MACADM.ADD_FACTOR_LINK( parent_factor_name => 'HQ_ClientID', child_factor_name => 'Div1_ClientID', label_indicator => DBMS_MACUTL.G_YES); END; /
17.1.2 ADD_POLICY_FACTORプロシージャ
ADD_POLICY_FACTORプロシージャは、ファクタのラベルをポリシーのOracle Label Securityラベルに含めることを指定します。
                     
構文
DBMS_MACADM.ADD_POLICY_FACTOR( policy_name IN VARCHAR2, factor_name IN VARCHAR2);
パラメータ
表17-2 ADD_POLICY_FACTORのパラメータ
| パラメータ | 説明 | 
|---|---|
| 
 | Oracle Label Securityポリシー名。 現行のデータベース・インスタンスに定義されているポリシーを確認するには、「DBA_DV_MAC_POLICYビュー」で説明されている Oracle Label Securityポリシーに関連付けられているファクタを確認するには、「DBA_DV_MAC_POLICYビュー」で説明されている | 
| 
 | ファクタ名。 既存のファクタを確認するには、「DBA_DV_FACTORビュー」で説明されている | 
例
BEGIN DBMS_MACADM.ADD_POLICY_FACTOR( policy_name => 'AccessData', factor_name => 'Sector2_ClientID'); END; /
17.1.3 CHANGE_IDENTITY_FACTORプロシージャ
CHANGE_IDENTITY_FACTORプロシージャは、アイデンティティを別ファクタと関連付けます。
                     
構文
DBMS_MACADM.CHANGE_IDENTITY_FACTOR( factor_name IN VARCHAR2, value IN VARCHAR2, new_factor_name IN VARCHAR2);
パラメータ
表17-3 CHANGE_IDENTITY_FACTORのパラメータ
| パラメータ | 説明 | 
|---|---|
| 
 | 現在のファクタ名。 既存のファクタを確認するには、「DBA_DV_FACTORビュー」で説明されている | 
| 
 | 更新するアイデンティティの値。 現行のデータベース・インスタンスで各ファクタの既存のアイデンティティを確認するには、「DBA_DV_IDENTITYビュー」で説明されている 現行のアイデンティティ・マップを確認するには、「DBA_DV_IDENTITY_MAPビュー」で説明されている | 
| 
 | アイデンティティと関連付けるファクタの名前。「DBA_DV_FACTORビュー」で説明されている | 
例
BEGIN DBMS_MACADM.CHANGE_IDENTITY_FACTOR( factor_name => 'Sector2_ClientID', value => 'intranet', new_factor_name => 'Sector4_ClientID'); END; /
17.1.4 CHANGE_IDENTITY_VALUEプロシージャ
CHANGE_IDENTITY_FACTORプロシージャは、アイデンティティの値を更新します。 
                     
構文
DBMS_MACADM.CHANGE_IDENTITY_VALUE( factor_name IN VARCHAR2, value IN VARCHAR2, new_value IN VARCHAR2);
パラメータ
表17-4 CHANGE_IDENTITY_VALUEのパラメータ
| パラメータ | 説明 | 
|---|---|
| 
 | ファクタ名。 既存のファクタを確認するには、「DBA_DV_FACTORビュー」で説明されている | 
| 
 | アイデンティティに関連付けられている現在の値。 現行のデータベース・インスタンスで各ファクタの既存のアイデンティティを確認するには、「DBA_DV_FACTORビュー」で説明されている 現行のアイデンティティ・マップを確認するには、「DBA_DV_IDENTITY_MAPビュー」で説明されている | 
| 
 | 新しいアイデンティティ値(大/小文字混在で最大1024文字)。 | 
例
BEGIN DBMS_MACADM.CHANGE_IDENTITY_VALUE( factor_name => 'Sector2_ClientID', value => 'remote', new_value => 'intranet'); END; /
17.1.5 CREATE_DOMAIN_IDENTITYプロシージャ
CREATE_DOMAIN_IDENTITYプロシージャは、Oracle Real Application Clusters (Oracle RAC)およびOracle Label Securityに使用されます。
                     
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);
パラメータ
表17-5 CREATE_DOMAIN_IDENTITYのパラメータ
| パラメータ | 説明 | 
|---|---|
| 
 | ホストを追加するドメインの名前。 分散データベース・システムのネットワーク構造内でデータベースの論理的な場所を確認するには、「Oracle Database VaultのDVF PL/SQLファクタ・ファンクション」で説明されている | 
| 
 | ドメインに追加されるOracle Real Application Clustersホスト名。 データベースのホスト名を確認するには、「Oracle Database VaultのDVF PL/SQLファクタ・ファンクション」で説明されている | 
| 
 | Oracle Label Securityポリシー名。ポリシー名を省略すると、ドメインはどのポリシーにも関連付けられません。 使用可能なポリシーを確認するには、「DBA_DV_MAC_POLICYビュー」で説明されている | 
| 
 | Oracle Label Securityポリシーを追加するドメインの名前。 | 
例
BEGIN DBMS_MACADM.CREATE_DOMAIN_IDENTITY( domain_name => 'example', domain_host => 'mydom_host', policy_name => 'AccessData', domain_label => 'sensitive'); END; /
17.1.6 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);
パラメータ
表17-6 CREATE_FACTORのパラメータ
| パラメータ | 説明 | 
|---|---|
| 
 | ファクタ名(空白を使用せず、大/小文字混在で最大128文字)。 現行のデータベース・インスタンスで既存のファクタを確認するには、「DBA_DV_FACTORビュー」で説明されている | 
| 
 | ファクタのタイプ(空白を使用せず、大/小文字混在で最大128文字)。 既存のファクタ・タイプを確認するには、「DBA_DV_FACTOR_TYPEビュー」で説明されている | 
| 
 | ファクタの目的の説明(大/小文字混在で最大1024文字)。 | 
| 
 | ファクタ・アイデンティティを設定する時期および方法の制御にルール・セットを使用する場合のルール・セット名。 既存のルール・セットを確認するには、「Oracle Database Vaultのデータ・ディクショナリ・ビュー」で説明されている | 
| 
 | ファクタのアイデンティティを取得する有効なPL/SQL式。大/小文字混在で最大255文字まで使用できます。詳細は、「ファクタの取得メソッドの設定」を参照してください。 | 
| 
 | ファクタを検証するプロシージャの名前。これは、ブール値( | 
| 
 | 
 
 詳細は、「ファクタの識別情報の設定」を参照してください。 | 
| 
 | ファクタのラベル付けのオプション。 
 詳細は、「ファクタのOracle Label Securityラベル付け情報の設定」を参照してください。 | 
| 
 | ユーザーがログインするときにファクタを評価するオプション。 
 詳細は、「ファクタの評価情報の設定」を参照してください。 | 
| 
 | カスタムのOracle Database Vault監査レコードから生成する場合にファクタを監査するオプション。 
 
 詳細は、「ファクタの監査オプションの設定」を参照してください。 | 
| 
 | ファクタ・エラーをレポートするオプション。 
 詳細は、「ファクタのエラー・オプションの設定」を参照してください。 | 
例
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;
/17.1.7 CREATE_FACTOR_TYPEプロシージャ
CREATE_FACTOR_TYPEプロシージャは、ユーザー定義のファクタ・タイプを作成します。
                     
構文
DBMS_MACADM.CREATE_FACTOR_TYPE( name IN VARCHAR2, description IN VARCHAR2);
パラメータ
表17-7 CREATE_FACTOR_TYPEのパラメータ
| パラメータ | 説明 | 
|---|---|
| 
 | ファクタ・タイプ名(空白を使用せず、大/小文字混在で最大128文字)。 既存のファクタ・タイプを確認するには、「DBA_DV_FACTOR_TYPEビュー」で説明されている | 
| 
 | ファクタ・タイプの目的の説明(大/小文字混在で最大1024文字)。 | 
例
BEGIN DBMS_MACADM.CREATE_FACTOR_TYPE( name => 'Sector2Instance', description => 'Checks DB instances used in Sector 2'); END; /
17.1.8 CREATE_IDENTITYプロシージャ
CREATE_IDENTITYプロシージャは、指定されたファクタに対してアイデンティティおよび関連付けられた信頼レベルを割り当てます。 
                     
ファクタの作成後には、アイデンティティを割り当てる必要があります。
構文
DBMS_MACADM.CREATE_IDENTITY( factor_name IN VARCHAR2, value IN VARCHAR2, trust_level IN NUMBER);
パラメータ
表17-8 CREATE_IDENTITYのパラメータ
| パラメータ | 説明 | 
|---|---|
| 
 | ファクタ名。 既存のファクタを確認するには、「DBA_DV_FACTORビュー」で説明されている | 
| 
 | ファクタの実際の値(大/小文字混在で最大1024文字)。たとえば、IP_Addressファクタのアイデンティティは、192.0.2.12というIPアドレスになります。 | 
| 
 | 同じファクタの別のアイデンティティと比較した信頼の度合いを示す数値。一般に、信頼レベルの数値が高く設定されているほど信頼の度合いも高くなります。信頼レベル10は、非常に信頼度が高いことを表します。信頼レベルの数値が負の場合は信頼できません。 信頼レベルおよびラベル・セキュリティの詳細は、「ファクタ・アイデンティティの作成および構成」を参照してください。 | 
例
BEGIN DBMS_MACADM.CREATE_IDENTITY( factor_name => 'Sector2_ClientID', value => 'intranet', trust_level => 5); END; /
17.1.9 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);
パラメータ
表17-9 CREATE_IDENTITY_MAPのパラメータ
| パラメータ | 説明 | 
|---|---|
| 
 | アイデンティティ・マップの対象のファクタ。 現行のデータベース・インスタンスで既存のファクタを確認するには、「DBA_DV_FACTORビュー」で説明されている | 
| 
 | アイデンティティ・マップの評価が 既存のファクタ・アイデンティティを確認するには、「DBA_DV_IDENTITYビュー」で説明されている 現行のファクタ・アイデンティティ・マップを確認するには、「DBA_DV_IDENTITY_MAPビュー」で説明されている | 
| 
 | マップが関連する親ファクタ・リンク。 既存の親子ファクタ・マップを確認するには、「DBA_DV_IDENTITY_MAPビュー」で説明されている | 
| 
 | マップが関連する子ファクタ・リンク。 | 
| 
 | アイデンティティ・マップの関係演算子(たとえば、<、>、=など)。 | 
| 
 | 関係演算子の左オペランド。入力する下限値を表します。 | 
| 
 | 関係演算子の右オペランド。入力する上限値を表します。 | 
例
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; /
17.1.10 DELETE_FACTORプロシージャ
DELETE_FACTORプロシージャはファクタを削除します。 
                     
構文
DBMS_MACADM.DELETE_FACTOR( factor_name IN VARCHAR2);
パラメータ
表17-10 DELETE_FACTORのパラメータ
| パラメータ | 説明 | 
|---|---|
| 
 | ファクタ名。 現行のデータベース・インスタンスで既存のファクタを確認するには、「DBA_DV_FACTORビュー」で説明されている | 
例
EXEC DBMS_MACADM.DELETE_FACTOR('Sector2_ClientID');17.1.11 DELETE_FACTOR_LINKプロシージャ
DELETE_FACTOR_LINKプロシージャは、2つのファクタの親子関係を削除します。
                     
構文
DBMS_MACADM.DELETE_FACTOR_LINK( parent_factor_name IN VARCHAR2, child_factor_name IN VARCHAR2);
パラメータ
表17-11 DELETE_FACTOR_LINKのパラメータ
| パラメータ | 説明 | 
|---|---|
| 
 | ファクタ名。 現行のデータベース・インスタンスで親子マッピングに使用されているファクタを確認するには、「DBA_DV_FACTOR_LINKビュー」で説明されている | 
| 
 | ファクタ名 | 
例
BEGIN DBMS_MACADM.DELETE_FACTOR_LINK( parent_factor_name => 'HQ_ClientID', child_factor_name => 'Div1_ClientID'); END; /
17.1.12 DELETE_FACTOR_TYPEプロシージャ
DELETE_FACTOR_TYPEプロシージャはファクタ・タイプを削除します。 
                     
構文
DBMS_MACADM.DELETE_FACTOR_TYPE( name IN VARCHAR2);
パラメータ
表17-12 DELETE_FACTOR_TYPEのパラメータ
| パラメータ | 説明 | 
|---|---|
| 
 | ファクタ・タイプ名。 既存のファクタ・タイプを確認するには、「DBA_DV_FACTOR_TYPEビュー」で説明されている | 
例
EXEC DBMS_MACADM.DELETE_FACTOR_TYPE('Sector2Instance');17.1.13 DELETE_IDENTITYプロシージャ
DELETE_IDENTITYプロシージャは、既存のファクタからアイデンティティを削除します。 
                     
構文
DBMS_MACADM.DELETE_IDENTITY( factor_name IN VARCHAR2, value IN VARCHAR2);
パラメータ
表17-13 DELETE_IDENTITYのパラメータ
| パラメータ | 説明 | 
|---|---|
| 
 | ファクタ名。 現行のデータベース・インスタンスで既存のファクタを確認するには、「DBA_DV_FACTORビュー」で説明されている | 
| 
 | ファクタに関連付けられているアイデンティティ値。 現行のデータベース・インスタンス内の各ファクタのアイデンティティを確認するには、「DBA_DV_IDENTITYビュー」で説明されている | 
例
BEGIN DBMS_MACADM.DELETE_IDENTITY( factor_name => 'Sector2_ClientID', value => 'intranet'); END; /
17.1.14 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);
パラメータ
表17-14 DELETE_IDENTITY_MAPのパラメータ
| パラメータ | 説明 | 
|---|---|
| 
 | アイデンティティ・マップの対象のファクタ。 現行のデータベース・インスタンスで既存のファクタを確認するには、「DBA_DV_FACTORビュー」で説明されている | 
| 
 | アイデンティティ・マップの評価が 既存のファクタ・アイデンティティを確認するには、「DBA_DV_IDENTITYビュー」で説明されている 現行のファクタ・アイデンティティ・マップを確認するには、「DBA_DV_IDENTITY_MAPビュー」で説明されている | 
| 
 | マップが関連する親ファクタ・リンク。 既存の親子ファクタを確認するには、「DBA_DV_FACTOR_LINKビュー」で説明されている | 
| 
 | マップが関連する子ファクタ。 | 
| 
 | アイデンティティ・マップの関係演算子(たとえば、<、>、=など)。 | 
| 
 | 関係演算子の左(下限値)オペランド。 | 
| 
 | 関係演算子の右(上限値)オペランド。 | 
例
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; /
17.1.15 DROP_DOMAIN_IDENTITYプロシージャ
DROP_DOMAIN_IDENTITYプロシージャは、Oracle Real Application Clustersデータベース・ノードをドメインから削除します。
                     
構文
DBMS_MACADM.DROP_DOMAIN_IDENTITY( domain_name IN VARCHAR2, domain_host IN VARCHAR2);
パラメータ
表17-15 DROP_DOMAIN_IDENTITYのパラメータ
| パラメータ | 説明 | 
|---|---|
| 
 | ホストが追加されたドメインの名前。 
 | 
| 
 | ドメインに追加されたOracle Real Application Clustersホスト名。 指定されたデータベースのホスト名を確認するには、「F$DATABASE_NAMEファンクション」で説明されている | 
例
BEGIN DBMS_MACADM.DROP_DOMAIN_IDENTITY( domain_name => 'example', domain_host => 'mydom_host'); END; /
17.1.16 GET_SESSION_INFOファンクション
GET_SESSION_INFOファンクションは、現行セッションについてSYS.V_$SESSIONシステム表の情報を返します。 
                     
V$SESSIONデータ・ディクショナリ・ビューにも、この表のセッション情報が含まれます。詳細は、『Oracle Databaseリファレンス』を参照してください。
                        
構文
DBMS_MACADM.GET_SESSION_INFO( p_parameter IN VARCHAR2) RETURN VARCHAR2;
パラメータ
表17-16 GET_SESSION_INFOのパラメータ
| パラメータ | 説明 | 
|---|---|
| 
 | 
 | 
例
DECLARE
 session_var varchar2 := null;
BEGIN 
 session_var = DBMS_MACADM.GET_SESSION_INFO('PROCESS'); 
END;
/17.1.17 GET_INSTANCE_INFOファンクション
GET_INSTANCE_INFOファンクションは、現行のデータベース・インスタンスについてSYS.V_$INSTANCEシステム表の情報を返します。 
                     
V$INSTANCEデータ・ディクショナリ・ビューにも、この表のデータベース・インスタンス情報が含まれます。詳細は、『Oracle Databaseリファレンス』を参照してください。
                        
構文
DBMS_MACADM.GET_INSTANCE_INFO( p_parameter IN VARCHAR2) RETURN VARCHAR2;
パラメータ
表17-17 GET_INSTANCE_INFOのパラメータ
| パラメータ | 説明 | 
|---|---|
| 
 | 
 | 
例
DECLARE
 instance_var varchar2 := null;
BEGIN 
 instance_var = DBMS_MACADM.GET_INSTANCE_INFO('INSTANCE_NAME'); 
END;
/17.1.18 RENAME_FACTORプロシージャ
  RENAME_FACTORプロシージャは、ファクタの名前を変更します。名前の変更は、そのファクタが使用されているすべての箇所に反映されます。
                     
構文
DBMS_MACADM.RENAME_FACTOR( factor_name IN VARCHAR2, new_factor_name IN VARCHAR2);
パラメータ
表17-18 RENAME_FACTORのパラメータ
| パラメータ | 説明 | 
|---|---|
| 
 | 現在のファクタ名。 現行のデータベース・インスタンスで既存のファクタを確認するには、「DBA_DV_FACTORビュー」で説明されている | 
| 
 | 新しいファクタ名(空白を使用せず、大/小文字混在で最大128文字)。 | 
例
BEGIN DBMS_MACADM.RENAME_FACTOR( factor_name => 'Sector2_ClientID', new_factor_name => 'Sector2_Clients'); END; /
17.1.19 RENAME_FACTOR_TYPEプロシージャ
RENAME_FACTORプロシージャは、ファクタ・タイプの名前を変更します。名前の変更は、そのファクタ・タイプが使用されているすべての箇所に反映されます。
                     
構文
DBMS_MACADM.RENAME_FACTOR_TYPE( old_name IN VARCHAR2, new_name IN VARCHAR2);
パラメータ
表17-19 RENAME_FACTOR_TYPEのパラメータ
| パラメータ | 説明 | 
|---|---|
| 
 | 現在のファクタ・タイプ名。 現行のデータベース・インスタンスで既存のファクタ・タイプを確認するには、「DBA_DV_FACTOR_TYPEビュー」で説明されている | 
| 
 | 新しいファクタ・タイプ名(空白を使用せず、大/小文字混在で最大128文字)。 | 
例
BEGIN DBMS_MACADM.RENAME_FACTOR_TYPE( old_name => 'Sector2Instance', new_name => 'Sector2DBInstance'); END; /
17.1.20 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);
パラメータ
表17-20 UPDATE_FACTOR
| パラメータ | 説明 | 
|---|---|
| 
 | ファクタ名。 現行のデータベース・インスタンスで既存のファクタを確認するには、「DBA_DV_FACTORビュー」で説明されている | 
| 
 | ファクタ・タイプ名。 既存のファクタ・タイプを確認するには、「DBA_DV_FACTOR_TYPEビュー」で説明されている | 
| 
 | ファクタの目的の説明(大/小文字混在で最大1024文字)。 | 
| 
 | ファクタ・アイデンティティを設定する時期および方法の制御に使用されるルール・セットの名前。 既存のルール・セットを確認するには、「DBA_DV_RULE_SETビュー」で説明されている ファクタへのルール・セットの割当ての詳細は、「ファクタへのルール・セットの割当て」も参照してください。 | 
| 
 | ファクタのアイデンティティを取得する有効なPL/SQL式。大/小文字混在で最大255文字まで使用できます。詳細は、「ファクタの取得メソッドの設定」を参照してください。 | 
| 
 | ファクタを検証するプロシージャの名前。これは、ブール値( | 
| 
 | 
 
 詳細は、「ファクタの識別情報の設定」を参照してください。 | 
| 
 | ファクタのラベル付けのオプション。 
 
 詳細は、「ファクタのOracle Label Securityラベル付け情報の設定」を参照してください。 | 
| 
 | ユーザーがログインするときにファクタを評価するオプション。 
 
 詳細は、「ファクタの評価情報の設定」を参照してください。 | 
| 
 | カスタムのOracle Database Vault監査レコードから生成する場合にファクタを監査するオプション。 
 
 
 詳細は、「ファクタの監査オプションの設定」を参照してください。 | 
| 
 | ファクタ・エラーをレポートするオプション。 
 
 詳細は、「ファクタのエラー・オプションの設定」を参照してください。 | 
例
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;
/17.1.21 UPDATE_FACTOR_TYPEプロシージャ
UPDATE_FACTOR_TYPEプロシージャはファクタ・タイプを更新します。
                     
構文
DBMS_MACADM.UPDATE_FACTOR_TYPE( name IN VARCHAR2, description IN VARCHAR2);
パラメータ
表17-21 UPDATE_FACTOR_TYPEのパラメータ
| パラメータ | 説明 | 
|---|---|
| 
 | ファクタ・タイプ名。 現行のデータベース・インスタンスで既存のファクタ・タイプを確認するには、「DBA_DV_FACTOR_TYPEビュー」で説明されている | 
| 
 | ファクタ・タイプの目的の説明(大/小文字混在で最大1024文字)。 | 
例
BEGIN DBMS_MACADM.UPDATE_FACTOR_TYPE( name => 'Sector2DBInstance', description => 'Checks DB instances used in Sector 2'); END; /
17.1.22 UPDATE_IDENTITYプロシージャ
UPDATE_IDENTITYプロシージャは、ファクタ・アイデンティティの信頼レベルを更新します。
                     
構文
DBMS_MACADM.UPDATE_IDENTITY( factor_name IN VARCHAR2, value IN VARCHAR2, trust_level IN NUMBER);
パラメータ
表17-22 UPDATE_IDENTITYのパラメータ
| パラメータ | 説明 | 
|---|---|
| 
 | ファクタ名。 現行のデータベース・インスタンスで既存のファクタを確認するには、「DBA_DV_FACTORビュー」で説明されている アイデンティティがあるファクタを確認するには、「DBA_DV_IDENTITYビュー」で説明されている | 
| 
 | 新しいファクタ・アイデンティティ(大/小文字混在で最大1024文字)。たとえば、IP_Addressファクタのアイデンティティは、192.0.2.12というIPアドレスになります。 | 
| 
 | 同じファクタの別のアイデンティティと比較した信頼の度合いを示す数値。一般に、信頼レベルの数値が高く設定されているほど信頼の度合いも高くなります。信頼レベル10は、非常に信頼度が高いことを表します。信頼レベルの数値が負の場合は信頼できません。 信頼レベルおよびラベル・セキュリティの詳細は、「ファクタ・アイデンティティの作成および構成」を参照してください。 | 
例
BEGIN DBMS_MACADM.UPDATE_IDENTITY( factor_name => 'Sector2_ClientID', value => 'intranet', trust_level => 10); END; /
17.2 Oracle Database VaultランタイムのPL/SQLプロシージャおよびファンクション
Oracle Database Vaultには手続き型インタフェースが用意されており、Database Vaultセキュリティ・オプションの管理およびDatabase Vaultセキュリティの実施の管理に使用できます。
- Oracle Database VaultランタイムPL/SQLプロシージャおよびファンクション
 Oracle Database Vaultには、ファクタ固有の一連のPL/SQLプロシージャおよびファンクションが用意されています。
- SET_FACTORプロシージャ
 SET_FACTORプロシージャは、ファクタ・アイデンティティを動的に設定する必要があるアプリケーションに公開できます。
- GET_FACTORファンクション
 GET_FACTORファンクションは、パブリック・ファクタ・ファンクションによるファクタのアイデンティティの解決を可能にするために、DVFスキーマに公開されます。戻り型はVARCHAR2です。
- GET_FACTOR_LABELファンクション
 GET_FACTOR_LABELファンクションは、指定されたファクタに指定されたOracle Label Securityポリシー用のラベルが割り当てられている場合、そのラベルを返します。戻り型はVARCHAR2です。
- GET_TRUST_LEVELファンクション
 GET_TRUST_LEVELファンクションは、リクエストされたファクタの現行セッションのアイデンティティの信頼レベルを返します。戻り型はVARCHAR2です。
- GET_TRUST_LEVEL_FOR_IDENTITYファンクション
 GET_TRUST_LEVEL_FOR_IDENTITYファンクションは、リクエストされたファクタおよびアイデンティティの信頼レベルを返します。戻り型はVARCHAR2です。
- ROLE_IS_ENABLEDファンクション
 ROLE_IS_ENABLEDファンクションは、データベース・ロールが有効であるかどうかを示すブール値を返します。戻り型はBOOLEANです。
17.2.1 Oracle Database VaultランタイムのPL/SQLプロシージャおよびファンクションについて
Oracle Database Vaultには、ファクタ固有の一連のPL/SQLプロシージャおよびファンクションが用意されています。
これは、レルム違反およびコマンド認可のDDLコマンドを検証するためのロジックを公開するプロシージャおよびファンクションです。その他に、ファクタの値をたとえばWebアプリケーションなどから設定する(関連付けられたルール・セットがTrueに評価される場合)、セッションまたは特定のファクタ・アイデンティティに対する信頼レベルを取得する、あるいはファクタ・アイデンティティのラベルを取得するためのプロシージャおよびファンクションが用意されています。これらのプロシージャおよびファンクションは、データベース管理者がすべてのDVSYSパッケージ・プロシージャに対するEXECUTE権限を一般のデータベース・アカウント群に付与しないように提供されています。プロシージャおよびファンクションは、必要な最小限のメソッドのみを公開します。これらのファンクションおよびプロシージャはすべて、必要とするアプリケーションでパブリックに使用できます。 
                     
17.2.2 SET_FACTORプロシージャ
SET_FACTORプロシージャは、ファクタ・アイデンティティを動的に設定する必要があるアプリケーションに公開できます。 
                     
パッケージ・プロシージャDBMS_MACADM.SET_FACTORをラップします。割当て用のルール・セットがファクタに関連付けられていて、ルール・セットがtrueを返した場合に、値が設定されます。通常のルール・セット処理が行われ、ファクタ値(アイデンティティ)の検証メソッドがコールされます。このプロシージャは、一般のデータベース・アカウント群で使用(実行)できます。
                        
構文
SET_FACTOR( p_factor IN VARCHAR2, p_value IN VARCHAR2);
パラメータ
表17-23 SET_FACTORのパラメータ
| パラメータ | 説明 | 
|---|---|
| 
 | ファクタ名。 現行のデータベース・インスタンスで既存のファクタを確認するには、「DBA_DV_FACTORビュー」で説明されている | 
| 
 | アイデンティティ値。大/小文字混在で最大で1024文字まで入力できます。 現行のデータベース・インスタンス内の各ファクタのアイデンティティを確認するには、「DBA_DV_IDENTITYビュー」で説明されている | 
例
EXECUTE SET_FACTOR(''Sector2_ClientID'', ''identity'');17.2.3 GET_FACTORファンクション
GET_FACTORファンクションは、パブリック・ファクタ・ファンクションによるファクタのアイデンティティの解決を可能にするために、DVFスキーマに公開されます。戻り型はVARCHAR2です。
                     
このファンクションにより、DVFスキーマのF$ファンクションが有効になります。このファンクションは、一般のデータベース・アカウント群で使用(実行)できます。
                        
構文
GET_FACTOR( p_factor IN VARCHAR2) RETURN VARCHAR2;
パラメータ
表17-24 GET_FACTORのパラメータ
| パラメータ | 説明 | 
|---|---|
| 
 | ファクタ名。 現行のデータベース・インスタンスで既存のファクタを確認するには、「DBA_DV_FACTORビュー」で説明されている | 
例
BEGIN 
 DBMS_MACADM.CREATE_RULE(
  rule_name => 'Get Client ID Factor Identity',
  rule_expr => 'GET_FACTOR(''Sector2_ClientID'')');
END;
/17.2.4 GET_FACTOR_LABELファンクション
GET_FACTOR_LABELファンクションは、指定されたファクタに指定されたOracle Label Securityポリシー用のラベルが割り当てられている場合、そのラベルを返します。戻り型はVARCHAR2です。
                     
ポリシーがOracle Label Securityを使用して構成されている場合は、ポリシーの最大セッション・ラベルとマージされるラベルを返します。このファンクションは、一般のデータベース・アカウント群で使用(実行)できます。
構文
GET_FACTOR_LABEL( p_factor IN VARCHAR2, p_policy_name IN VARCHAR2) RETURN VARCHAR2;
パラメータ
表17-25 GET_FACTOR_LABELのパラメータ
| パラメータ | 説明 | 
|---|---|
| 
 | ファクタ名。 現行のデータベース・インスタンス内の使用可能なファクタを確認するには、 「DBA_DV_FACTORビュー」および「DBA_DV_MAC_POLICY_FACTORビュー」を参照してください。 | 
| 
 | Oracle Label Securityポリシー名。 現行のデータベース・インスタンスのポリシーおよびファクタに関する情報を検索する場合は、次のデータ・ディクショナリ・ビューを使用します。 
 | 
例
BEGIN 
 DBMS_MACADM.CREATE_RULE(
  rule_name => 'Get the ClientID Factor Label',
  rule_expr => 'GET_FACTOR_LABEL(''Sector2_ClientID'', ''Access Locations'')');
END;
/17.2.5 GET_TRUST_LEVELファンクション
GET_TRUST_LEVELファンクションは、リクエストされたファクタの現行セッションのアイデンティティの信頼レベルを返します。戻り型はVARCHAR2です。
                     
このファンクションは、一般のデータベース・アカウント群で使用(実行)できます。使用可能な信頼レベルのリストは、「ファクタ・アイデンティティの作成および構成」を参照してください。
構文
GET_TRUST_LEVEL( p_factor IN VARCHAR2) RETURN VARCHAR2;
パラメータ
表17-26 GET_TRUST_LEVELのパラメータ
| パラメータ | 説明 | 
|---|---|
| 
 | ファクタ名。 現行のデータベース・インスタンスで既存のファクタを確認するには、「DBA_DV_FACTORビュー」で説明されている | 
例
BEGIN 
 DBMS_MACADM.CREATE_RULE(
  rule_name => 'Get Client ID Trust Level',
  rule_expr => 'GET_TRUST_LEVEL(''Sector2_ClientID'')');
END;
/17.2.6 GET_TRUST_LEVEL_FOR_IDENTITYファンクション
GET_TRUST_LEVEL_FOR_IDENTITYファンクションは、リクエストされたファクタおよびアイデンティティの信頼レベルを返します。戻り型はVARCHAR2です。
                     
このファンクションは、一般のデータベース・アカウント群で使用(実行)できます。使用可能な信頼レベルのリストは、「ファクタ・アイデンティティの作成および構成」を参照してください。
構文
GET_TRUST_LEVEL_FOR_IDENTITY( p_factor IN VARCHAR2, p_identity IN VARCHAR2) RETURN VARCHAR2;
パラメータ
表17-27 GET_TRUST_LEVEL_FOR_IDENTITYのパラメータ
| パラメータ | 説明 | 
|---|---|
| 
 | ファクタ名。 現行のデータベース・インスタンスで既存のファクタを確認するには、「DBA_DV_FACTORビュー」で説明されている | 
| 
 | アイデンティティ値。 現行のデータベース・インスタンス内の各ファクタのアイデンティティを確認するには、「DBA_DV_IDENTITYビュー」で説明されている | 
例
BEGIN 
 DBMS_MACADM.CREATE_RULE(
  rule_name => 'Get Client ID Identity Trust Level',
  rule_expr => 'GET_TRUST_LEVEL_FOR_IDENTITY(''Sector2_ClientID'', ''identity'')');
END;
/17.2.7 ROLE_IS_ENABLEDファンクション
ROLE_IS_ENABLEDファンクションは、データベース・ロールが有効であるかどうかを示すブール値を返します。戻り型はBOOLEANです。
                     
このファンクションは、一般のデータベース・アカウント群で使用(実行)できます。
構文
ROLE_IS_ENABLED( p_role IN VARCHAR2) RETURN BOOLEAN;
パラメータ
表17-28 ROLE_IS_ENABLEDのパラメータ
| パラメータ | 説明 | 
|---|---|
| 
 | 確認するデータベース・ロール名。 既存のロールを検索する場合は、次のデータ・ディクショナリ・ビューを使用します。 
 | 
例
BEGIN 
 DBMS_MACADM.CREATE_RULE(
  rule_name => 'Check if SYSADM Role Is Enabled',
  rule_expr => 'ROLE_IS_ENABLED(''SYSADM'')');
END;
/17.3 Oracle Database VaultのDVF PL/SQLファクタ・ファンクション
DBMS_MACADM PL/SQLパッケージを使用して様々なファクタを管理する際、Oracle Database VaultによってDVFスキーマ・ファンクションが維持されます。 
                  
- Oracle Database Vault DVF PL/SQLファクタ・ファンクション
 Oracle Database Vaultには、頻繁に使用されるアクティビティ用にDVFファクタ固有のファンクションが用意されています。
- F$AUTHENTICATION_METHODファンクション
 F$AUTHENTICATION_METHODファンクションは認証の方式をVARCHAR2データ型で返します。
- F$CLIENT_IPファンクション
 F$CLIENT_IPファンクションは、クライアントが接続されているコンピュータのIPアドレスをVARCHAR2データ型で返します。
- F$DATABASE_DOMAINファンクション
 F$DATABASE_DOMAINファンクションは、DB_DOMAIN初期化パラメータに指定されているデータベースのドメインをVARCHAR2データ型で返します。
- F$DATABASE_HOSTNAMEファンクション
 F$DATABASE_HOSTNAMEファンクションは、インスタンスが実行されているコンピュータのホスト名をVARCHAR2データ型で返します。
- F$DATABASE_INSTANCEファンクション
 F$DATABASE_INSTANCEファンクションは、現在のデータベース・インスタンスのインスタンス識別番号をVARCHAR2データ型で返します。
- F$DATABASE_IPファンクション
 F$DATABASE_IPファンクションは、データベース・インスタンスが実行されているコンピュータのIPアドレスをVARCHAR2データ型で返します。
- F$DATABASE_NAMEファンクション
 F$DATABASE_NAMEファンクションは、DB_NAME初期化パラメータに指定されているデータベースの名前をVARCHAR2データ型で返します。
- F$DOMAINファンクション
 F$DOMAINファンクションは、ランタイム環境(ネットワークIT環境やそのサブセットなど)内の、特定の機密レベルで動作する物理的な構成または実装固有のファクタの名前付きコレクションを返します。戻り型はVARCHAR2です。
- F$DV$_CLIENT_IDENTIFIERファンクションF$DV$_CLIENT_IDENTIFIERファンクションは、Oracle Database Vaultクライアント識別子を返します。
- F$DV$_DBLINK_INFOファンクションF$DV$_DBLINK_INFOファンクションは、Oracle Database Vaultデータベース・リンクに関する情報を返します。
- F$DV$_MODULEファンクションF$DV$_MODULEファンクションは、Oracle Database Vaultモジュールに関する情報を返します。
- F$ENTERPRISE_IDENTITYファンクション
 F$ENTERPRISE_IDENTITYファンクションは、ユーザーのエンタープライズ全体のアイデンティティをVARCHAR2データ型で返します。
- F$IDENTIFICATION_TYPEファンクション
 F$IDENTIFICATION_TYPEファンクションは、データベースでのユーザーのスキーマの作成方法を返します。具体的には、CREATE/ALTER USER構文のIDENTIFIED句が反映されます。戻り型はVARCHAR2です。
- F$LANGファンクション
 F$LANGファンクションは、既存のLANGUAGEパラメータより短い形式の言語名のISO略称を、ユーザーのセッションに対して返します。戻り型はVARCHAR2です。
- F$LANGUAGEファンクション
 F$LANGUAGEファンクションは、ユーザーのセッションで現在使用中の言語と地域、およびデータベース文字セットを返します。戻り型はVARCHAR2です。
- F$MACHINEファンクション
 F$MACHINEファンクションは、データベース・セッションを確立したデータベース・クライアントのコンピュータ(ホスト)名を返します。戻り型はVARCHAR2です。
- F$NETWORK_PROTOCOLファンクション
 F$NETWORK_PROTOCOLファンクションは、接続文字列のPROTOCOL=protocol部分に指定されている、通信に使用されるネットワーク・プロトコルを返します。戻り型はVARCHAR2です。
- F$PROXY_ENTERPRISE_IDENTITYファンクション
 F$PROXY_ENTERPRISE_IDENTITYファンクションは、プロキシ・ユーザーがエンタープライズ・ユーザーである場合、Oracle Internet Directoryの識別名(DN)を返します。戻り型はVARCHAR2です。
- F$PROXY_USERファンクションF$PROXY_USERファンクションは、プロキシ・ユーザーの名前を返します。
- F$SESSION_USERファンクション
 F$SESSION_USERファンクションは、現行ユーザーが認証されたデータベース・ユーザー名を返します。この値は、セッションを通して同じです。戻り型はVARCHAR2です。
17.3.1 Oracle Database Vault DVF PL/SQLファクタ・ファンクションについて
Oracle Database Vaultには、頻繁に使用されるアクティビティ用にDVFファクタ固有のファンクションが用意されています。
DVSYSスキーマから提供されるファンクションおよびプロシージャに加え、DVFスキーマにはシステムに定義されているファクタごとに1つのファンクションが含まれます。 
                     
その後、ファンクションは一般のデータベース・アカウント群でPL/SQLファンクションおよび標準SQLを介して使用できます。これにより、ファクタはOracle Label Security、Oracle Virtual Private Database(VPD)などで使用できるようになります。
通常、これらのファンクションをルール式に組み込むことができます。たとえば:
その後、ファンクションは一般のデータベース・アカウント群でPL/SQLファンクションおよび標準SQLを介して使用できます。これにより、ファクタはOracle Label Security、Oracle Virtual Private Database(VPD)などで使用できるようになります。
通常、これらのファンクションをルール式に組み込むことができます。たとえば:
BEGIN
 DBMS_MACADM.CREATE_RULE(
 rule_name => 'Not Internal DBA',
 rule_expr => 'DVF.F$SESSION_USER NOT IN (''JSMTIH'', ''TBROWN'')');
END;
/
ファクタ・ファンクションの値を検索するには、DUALシステム表から選択します。たとえば:
                     
SELECT DVF.F$SESSION_USER FROM DUAL; F$SESSION_USER ------------------------------------------------ SEC_ADMIN_OWEN
ファクタ自体の名前は、大/小文字を区別しません。たとえば、次の文は同じ結果を返します。
select dvf.f$session_user from dual; SELECT DVF.F$SESSION_USER FROM DUAL;
17.3.2 F$AUTHENTICATION_METHODファンクション
F$AUTHENTICATION_METHODファンクションは認証の方式をVARCHAR2データ型で返します。
                     
次に、ユーザー・タイプの後に返される方式を続けて示します。
- 
                              パスワードで認証されるエンタープライズ・ユーザー、ローカル・データベース・ユーザー、またはパスワード・ファイルを使用する SYSDBA/SYSOPER(パスワードを使用するユーザー名によるプロキシ):PASSWORD
- 
                              Kerberosで認証されるエンタープライズ・ユーザーまたは外部ユーザー: KERBEROS
- 
                              Transport Layer Security (TLS)で認証されるエンタープライズ・ユーザーまたは外部ユーザー: SSL
- 
                              RADIUSで認証される外部ユーザー: RADIUS
- 
                              オペレーティング・システムで認証される外部ユーザーまたは SYSDBA/SYSOPER:OS
- 
                              DCEで認証される外部ユーザー: DCE
- 
                              証明書、識別名(DN)またはパスワードを使用しないユーザー名によるプロキシ: NONE
IDENTIFICATION_TYPEを使用すると、認証方式がパスワード、KerberosまたはTLSの場合に、外部ユーザーとエンタープライズ・ユーザーを区別できます。
                        
構文
DVF.F$AUTHENTICATION_METHOD () RETURN VARCHAR2;
パラメータ
なし
例
BEGIN DBMS_MACADM.CREATE_RULE( rule_name => 'Check TLS Authentication Method', rule_expr => 'DVF.F$AUTHENTICATION_METHOD = ''SSL'''); END; /
17.3.3 F$CLIENT_IPファンクション
F$CLIENT_IPファンクションは、クライアントが接続されているコンピュータのIPアドレスをVARCHAR2データ型で返します。
                     
構文
DVF.F$CLIENT_IP () RETURN VARCHAR2;
パラメータ
なし
例
次の例では、ルール作成文でDVF.F$CLIENT_IPを使用する方法を示します。入力できるのは、IPアドレスの範囲ではなく、1つのIPアドレスのみであることに注意してください。
                        
BEGIN DBMS_MACADM.CREATE_RULE( rule_name => 'Check Client IP Address', rule_expr => 'DVF.F$CLIENT_IP = ''192.0.2.10'''); END; /
17.3.4 F$DATABASE_DOMAINファンクション
F$DATABASE_DOMAINファンクションは、DB_DOMAIN初期化パラメータに指定されているデータベースのドメインをVARCHAR2データ型で返します。
                     
構文
DVF.F$DATABASE_DOMAIN () RETURN VARCHAR2;
パラメータ
なし
例
BEGIN 
 DBMS_MACADM.CREATE_RULE(
  rule_name => 'Check Client Database Domain',
  rule_expr => 'DVF.F$DATABASE_DOMAIN NOT IN (''EXAMPLE'', ''YOURDOMAIN'')');
END;
/17.3.5 F$DATABASE_HOSTNAMEファンクション
F$DATABASE_HOSTNAMEファンクションは、インスタンスが実行されているコンピュータのホスト名をVARCHAR2データ型で返します。
                     
構文
DVF.F$DATABASE_HOSTNAME () RETURN VARCHAR2;
パラメータ
なし
例
BEGIN 
 DBMS_MACADM.CREATE_RULE(
  rule_name => 'Check Host Name',
  rule_expr => 'DVF.F$DATABASE_HOSTNAME IN (''SHOBEEN'', ''MAU'')');
END;
/17.3.6 F$DATABASE_INSTANCEファンクション
F$DATABASE_INSTANCEファンクションは、現在のデータベース・インスタンスのインスタンス識別番号をVARCHAR2データ型で返します。
                     
構文
DVF.F$DATABASE_INSTANCE () RETURN VARCHAR2;
パラメータ
なし
例
BEGIN DBMS_MACADM.CREATE_RULE( rule_name => 'Check Database Instance ID', rule_expr => 'DVF.F$DATABASE_INSTANCE = ''SALES_DB'''); END; /
17.3.7 F$DATABASE_IPファンクション
F$DATABASE_IPファンクションは、データベース・インスタンスが実行されているコンピュータのIPアドレスをVARCHAR2データ型で返します。
                     
構文
DVF.F$DATABASE_IP () RETURN VARCHAR2;
パラメータ
なし
例
BEGIN DBMS_MACADM.CREATE_RULE( rule_name => 'Check Database IP address', rule_expr => 'DVF.F$DATABASE_IP = ''192.0.2.5'''); END; /
17.3.8 F$DATABASE_NAMEファンクション
F$DATABASE_NAMEファンクションは、DB_NAME初期化パラメータに指定されているデータベースの名前をVARCHAR2データ型で返します。
                     
構文
DVF.F$DATABASE_NAME () RETURN VARCHAR2;
パラメータ
なし
例
BEGIN DBMS_MACADM.CREATE_RULE( rule_name => 'Check Database DB_NAME Name', rule_expr => 'DVF.F$DATABASE_NAME = ''ORCL'''); END; /
17.3.9 F$DOMAINファンクション
F$DOMAINファンクションは、ランタイム環境(ネットワークIT環境やそのサブセットなど)内の、特定の機密レベルで動作する物理的な構成または実装固有のファクタの名前付きコレクションを返します。戻り型はVARCHAR2です。 
                     
データベースへのセキュア・アクセス・パス内にあるOracle Database Vaultノードのホスト名、IPアドレスおよびデータベース・インスタンス名などのファクタを使用してドメインを識別できます。ドメインを識別するファクタ識別子の組合せを使用して、各ドメインを一意に特定できます。これらの識別ファクタやその他のファクタを使用して、ドメイン内に最大セキュリティ・ラベルを定義できます。これにより、Oracle Database Vaultセッションに関する物理ファクタに応じて、データ・アクセスおよびコマンドが制限されます。必要なドメインの例として、企業機密、内部パブリック、パートナ、顧客があります。
構文
DVF.F$DOMAIN () RETURN VARCHAR2;
パラメータ
なし
例
BEGIN DBMS_MACADM.CREATE_RULE( rule_name => 'Check Domain', rule_expr => 'DVF.F$DOMAIN = ''EXAMPLE.COM'''); END; /
17.3.10 F$DV$_CLIENT_IDENTIFIERファンクション
F$DV$_CLIENT_IDENTIFIERファンクションは、Oracle Database Vaultクライアント識別子を返します。 
                     
構文
DVF.F$DV$_CLIENT_IDENTIFIER () RETURN VARCHAR2;
パラメータ
なし
例
BEGIN DBMS_MACADM.CREATE_RULE( rule_name => 'Check Database Vault Client Identifiers', rule_expr => 'DVF.F$DV$_CLIENT_IDENTIFIER = ''14903BUA765454''; END;/
17.3.11 F$DV$_DBLINK_INFOファンクション
F$DV$_DBLINK_INFOファンクションは、Oracle Database Vaultデータベース・リンクに関する情報を返します。 
                     
構文
DVF.F$DV$_DBLINK_INFO () RETURN VARCHAR2;
パラメータ
なし
例
BEGIN DBMS_MACADM.CREATE_RULE( rule_name => 'Check Database Vault database link info', rule_expr => 'DVF.F$DV$_DBLINK_INFO = ''SOURCE_GLOBAL_NAME=SALES.US.EXAMPLE.COM, DBLINK_NAME=PDB2_LINK, SOURCE_AUDIT_SESSIONID=200057''; END;/
17.3.12 F$DV$_MODULEファンクション
F$DV$_MODULEファンクションは、Oracle Database Vaultモジュールに関する情報を返します。 
                     
構文
DVF.F$DV$_MODULE () RETURN VARCHAR2;
パラメータ
なし
例
BEGIN DBMS_MACADM.CREATE_RULE( rule_name => 'Check Database Vault modules', rule_expr => 'DVF.F$DV$_MODULE = ''SQL*Plus''; END;/
17.3.13 F$ENTERPRISE_IDENTITYファンクション
F$ENTERPRISE_IDENTITYファンクションは、ユーザーのエンタープライズ全体のアイデンティティをVARCHAR2データ型で返します。
                     
- 
                              エンタープライズ・ユーザーの場合: Oracle Internet Directory DN。 
- 
                              外部ユーザーの場合: 外部アイデンティティ(Kerberosプリンシパル名、RADIUSおよびDCEスキーマ名、オペレーティング・システム・ユーザー名、証明書DN)。 
- 
                              ローカル・ユーザーおよび SYSDBA/SYSOPERログインの場合: NULL
属性の値はプロキシ方式によって異なります。
- 
                              DNによるプロキシの場合: クライアントのOracle Internet Directory DN。 
- 
                              証明書によるプロキシの場合: 外部ユーザーではクライアントの証明書DN、グローバル・ユーザーではOracle Internet Directory DN。 
- 
                              ユーザー名によるプロキシの場合: エンタープライズ・ユーザーであるクライアントではOracle Internet Directory DN、ローカル・データベース・ユーザーであるクライアントではNULL。 
構文
DVF.F$ENTERPRISE_IDENTITY () RETURN VARCHAR2;
パラメータ
なし
例
BEGIN 
 DBMS_MACADM.CREATE_RULE(
  rule_name => 'Check User Enterprise Identity',
  rule_expr => 'DVF.F$ENTERPRISE_IDENTITY NOT IN (''JSMITH'', ''TSMITH'')');
END;
/17.3.14 F$IDENTIFICATION_TYPEファンクション
F$IDENTIFICATION_TYPEファンクションは、データベースでのユーザーのスキーマの作成方法を返します。具体的には、CREATE/ALTER USER構文のIDENTIFIED句が反映されます。戻り型はVARCHAR2です。 
                     
次に、スキーマ作成時に使用される構文の後に返される識別タイプを続けて示します。
- 
                              IDENTIFIED BYpassword:LOCAL
- 
                              IDENTIFIED EXTERNALLY:EXTERNAL
- 
                              IDENTIFIED GLOBALLY:GLOBAL SHARED
- 
                              IDENTIFIED GLOBALLYAS DN: GLOBAL PRIVATE
構文
DVF.F$IDENTIFICATION_TYPE () RETURN VARCHAR2;
パラメータ
なし
例
BEGIN DBMS_MACADM.CREATE_RULE( rule_name => 'Check User Schema Creation Type', rule_expr => 'DVF.F$IDENTIFICATION_TYPE = ''GLOBAL SHARED'''); END; /
17.3.15 F$LANGファンクション
F$LANGファンクションは、既存のLANGUAGEパラメータより短い形式の言語名のISO略称を、ユーザーのセッションに対して返します。戻り型はVARCHAR2です。
                     
Oracle Databaseでサポートされている言語の一覧については、『Oracle Databaseグローバリゼーション・サポート・ガイド』を参照してください。
構文
DVF.F$LANG () RETURN VARCHAR2;
パラメータ
なし
例
BEGIN 
 DBMS_MACADM.CREATE_RULE(
  rule_name => 'Check ISO Abbreviated Language Name',
  rule_expr => 'DVF.F$LANG IN (''EN'', ''DE'', ''FR'')');
END;
/17.3.16 F$LANGUAGEファンクション
F$LANGUAGEファンクションは、ユーザーのセッションで現在使用中の言語と地域、およびデータベース文字セットを返します。戻り型はVARCHAR2です。
                     
戻り型は次の形式です。
language_territory.characterset
Oracle Databaseでサポートされている言語と地域の一覧については、『Oracle Databaseグローバリゼーション・サポート・ガイド』を参照してください。
構文
DVF.F$LANGUAGE () RETURN VARCHAR2;
パラメータ
なし
例
BEGIN DBMS_MACADM.CREATE_RULE( rule_name => 'Check Session Language and Territory', rule_expr => 'DVF.F$LANGUAGE = ''AMERICAN_AMERICA.WE8ISO8859P1'''); END; /
17.3.17 F$MACHINEファンクション
F$MACHINEファンクションは、データベース・セッションを確立したデータベース・クライアントのコンピュータ(ホスト)名を返します。戻り型はVARCHAR2です。
                     
構文
DVF.F$MACHINE () RETURN VARCHAR2;
パラメータ
なし
例
BEGIN 
 DBMS_MACADM.CREATE_RULE(
  rule_name => 'Check Client Computer Host Name',
  rule_expr => 'DVF.F$MACHINE NOT IN (''SHOBEEN'', ''SEBASTIAN'')');
END;
/17.3.18 F$NETWORK_PROTOCOLファンクション
F$NETWORK_PROTOCOLファンクションは、接続文字列のPROTOCOL=protocol部分に指定されている、通信に使用されるネットワーク・プロトコルを返します。戻り型はVARCHAR2です。
                     
構文
DVF.F$NETWORK_PROTOCOL () RETURN VARCHAR2;
パラメータ
なし
例
BEGIN DBMS_MACADM.CREATE_RULE( rule_name => 'Check Network Protocol', rule_expr => 'DVF.F$NETWORK_PROTOCOL = ''TCP'''); END; /
17.3.19 F$PROXY_ENTERPRISE_IDENTITYファンクション
F$PROXY_ENTERPRISE_IDENTITYファンクションは、プロキシ・ユーザーがエンタープライズ・ユーザーである場合、Oracle Internet Directoryの識別名(DN)を返します。戻り型はVARCHAR2です。
                     
構文
DVF.F$PROXY_ENTERPRISE_IDENTITY () RETURN VARCHAR2;
パラメータ
なし
例
BEGIN DBMS_MACADM.CREATE_RULE( rule_name => 'Get OID DN of Enterprise User', rule_expr => 'DVF.F$PROXY_ENTERPRISE_IDENTITY = ''cn=Provisioning Admins'''); END; /
17.3.20 F$PROXY_USERファンクション
F$PROXY_USERファンクションは、プロキシ・ユーザーの名前を返します。 
                     
構文
DVF.PROXY_USER () RETURN VARCHAR2;
パラメータ
なし
例
BEGIN
  DBMS_MACADM.CREATE_RULE(
   rule_name => 'Check Proxy Users',
   rule_expr => 'DVF.PROXY_USER NOT IN (''ECHICHESTER'', ''PFITCH'')');
END;/17.3.21 F$SESSION_USERファンクション
F$SESSION_USERファンクションは、現行ユーザーが認証されたデータベース・ユーザー名を返します。この値は、セッションを通して同じです。戻り型はVARCHAR2です。
                     
構文
DVF.F$SESSION_USER () RETURN VARCHAR2;
パラメータ
なし
例
BEGIN 
 DBMS_MACADM.CREATE_RULE(
  rule_name => 'Check Database User Name',
  rule_expr => 'DVF.F$SESSION_USER IN (''JSMITH'', ''TSMITH'')');
END;
/