18 Oracle Database Vaultセキュア・アプリケーション・ロールのAPI
DBMS_MACADMおよびDBMS_MACSEC_ROLES PL/SQLパッケージは、Database Vaultセキュア・アプリケーション・ロールを管理します。
               
- DBMS_MACADMセキュア・アプリケーション・ロールのプロシージャ
 DBMS_MACADMパッケージでは、Oracle Database Vaultのセキュア・アプリケーション・ロールの作成、名前変更、割当て、割当て解除、更新および削除が可能です。
- DBMS_MACSEC_ROLESセキュア・アプリケーション・ロールのプロシージャおよびファンクション
 DBMS_MACSEC_ROLESパッケージは、ユーザーに対する認可をチェックし、Oracle Database Vaultセキュア・アプリケーション・ロールを設定します。
18.1 DBMS_MACADMセキュア・アプリケーション・ロールのプロシージャ
DBMS_MACADMパッケージでは、Oracle Database Vaultのセキュア・アプリケーション・ロールの作成、名前変更、割当て、割当て解除、更新および削除が可能です。
                  
- CREATE_ROLEプロシージャ
 CREATE_ROLEプロシージャは、Oracle Database Vaultセキュア・アプリケーション・ロールを作成します。
- DELETE_ROLEプロシージャ
 DELETE_ROLEプロシージャは、Oracle Database Vaultセキュア・アプリケーション・ロールを削除します。
- RENAME_ROLEプロシージャ
 RENAME_ROLEプロシージャは、Oracle Database Vaultセキュア・アプリケーション・ロールの名前を変更します。名前の変更は、そのロールが使用されているすべての箇所に反映されます。
- UPDATE_ROLEプロシージャ
 UPDATE_ROLEプロシージャは、Oracle Database Vaultセキュア・アプリケーション・ロールを更新します。
18.1.1 CREATE_ROLEプロシージャ
CREATE_ROLEプロシージャは、Oracle Database Vaultセキュア・アプリケーション・ロールを作成します。
                     
構文
DBMS_MACADM.CREATE_ROLE( role_name IN VARCHAR2, enabled IN VARCHAR2, rule_set_name IN VARCHAR2);
パラメータ
表18-1 CREATE_ROLEのパラメータ
| パラメータ | 説明 | 
|---|---|
| 
 | ロール名(空白を使用せず、最大128文字)。マルチテナント環境では、ロール名の先頭に 現行のデータベース・インスタンスで既存のセキュア・アプリケーション・ロールを確認するには、「DBA_DV_ROLEビュー」で説明されている | 
| 
 | 
 | 
| 
 | このセキュア・アプリケーションを有効にできるかどうかを判断するためのルール・セットの名前。 現行のデータベース・インスタンスで既存のルール・セットを確認するには、「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; /
18.1.2 DELETE_ROLEプロシージャ
DELETE_ROLEプロシージャは、Oracle Database Vaultセキュア・アプリケーション・ロールを削除します。
                     
構文
DBMS_MACADM.DELETE_ROLE( role_name IN VARCHAR2);
パラメータ
表18-2 DELETE_ROLEのパラメータ
| パラメータ | 説明 | 
|---|---|
| 
 | ロール名。 現行のデータベース・インスタンスで既存のセキュア・アプリケーション・ロールを確認するには、「DBA_DV_ROLEビュー」で説明されている | 
例
EXEC DBMS_MACADM.DELETE_ROLE('SECT2_APP_MGR'); 18.1.3 RENAME_ROLEプロシージャ
RENAME_ROLEプロシージャは、Oracle Database Vaultセキュア・アプリケーション・ロールの名前を変更します。名前の変更は、そのロールが使用されているすべての箇所に反映されます。
                     
構文
DBMS_MACADM.RENAME_ROLE( role_name IN VARCHAR2, new_role_name IN VARCHAR2);
パラメータ
表18-3 RENAME_ROLEのパラメータ
| パラメータ | 説明 | 
|---|---|
| 
 | 現在のロール名。 現行のデータベース・インスタンスで既存のセキュア・アプリケーション・ロールを確認するには、「DBA_DV_ROLEビュー」で説明されている | 
| 
 | ロール名(空白を使用せず、最大128文字)。この名前が、『Oracle Database SQL言語リファレンス』で説明されているロール作成の標準のOracleネーミング規則に準拠していることを確認してください。マルチテナント環境では、ロール名の先頭に | 
例
BEGIN DBMS_MACADM.RENAME_ROLE( role_name => 'SECT2_APP_MGR', new_role_name => 'SECT2_SYSADMIN'); END; /
18.1.4 UPDATE_ROLEプロシージャ
UPDATE_ROLEプロシージャは、Oracle Database Vaultセキュア・アプリケーション・ロールを更新します。 
                     
構文
DBMS_MACADM.UPDATE_ROLE( role_name IN VARCHAR2, enabled IN VARCHAR2, rule_set_name IN VARCHAR2);
パラメータ
表18-4 UPDATE_ROLEのパラメータ
| パラメータ | 説明 | 
|---|---|
| 
 | ロール名。 現行のデータベース・インスタンスで既存のセキュア・アプリケーション・ロールを確認するには、「DBA_DV_ROLEビュー」で説明されている | 
| 
 | 
 
 | 
| 
 | このセキュア・アプリケーションを有効にできるかどうかを判断するためのルール・セットの名前。 現行のデータベース・インスタンスで既存のルール・セットを確認するには、「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; /
18.2 DBMS_MACSEC_ROLESセキュア・アプリケーション・ロールのプロシージャおよびファンクション
DBMS_MACSEC_ROLESパッケージは、ユーザーに対する認可をチェックし、Oracle Database Vaultセキュア・アプリケーション・ロールを設定します。 
                  
DBMS_MACSEC_ROLESパッケージは、すべてのユーザーが使用できます。 
                  
- CAN_SET_ROLEファンクション
 CAN_SET_ROLEファンクションは、メソッドを起動するユーザーに、Oracle Database Vaultセキュア・アプリケーション・ロールを使用する権限が付与されているかどうかをチェックします。
- SET_ROLEプロシージャ
 SET_ROLEプロシージャは、指定されたロールのSET ROLEPL/SQL文を発行します。
18.2.1 CAN_SET_ROLEファンクション
CAN_SET_ROLEファンクションは、メソッドを起動するユーザーが、Oracle Database Vaultセキュア・アプリケーション・ロールを使用するように認可されているかどうかをチェックします。
                     
 認可は、ロールに関連付けられたルール・セットのチェックにより決定されます。戻り型はBOOLEANです。
                        
構文
DBMS_MACSEC_ROLES.CAN_SET_ROLE( p_role IN VARCHAR2) RETURN BOOLEAN;
パラメータ
表18-5 CAN_SET_ROLEのパラメータ
| パラメータ | 説明 | 
|---|---|
| 
 | ロール名。 現行のデータベース・インスタンスで既存のセキュア・アプリケーション・ロールを確認するには、「DBA_DV_ROLEビュー」で説明されている | 
例
SET SERVEROUTPUT ON
BEGIN
 IF DBMS_MACSEC_ROLES.CAN_SET_ROLE('SECTOR2_APP_MGR')
  THEN DBMS_OUTPUT.PUT_LINE('''SECTOR2_APP_MGR'' can be enabled.');
 END IF;
END;
/18.2.2 SET_ROLEプロシージャ
SET_ROLEプロシージャは、指定されたロールのSET ROLE PL/SQL文を発行します。 
                     
このプロシージャのチェック・プロセスには、Oracle Database Vaultセキュア・アプリケーション・ロールと通常のOracle Databaseロールの両方が含まれます。
このプロシージャは、ロールに関連付けられているルール・セットがtrueと評価される場合にのみ、Oracle Database Vaultセキュア・アプリケーション・ロールを設定します。SET ROLEの発行前に、CAN_SET_ROLEメソッドがコールされ、ロールに関連付けられたルール・セットがチェックされます。監査などのランタイムのルール・セットの動作、障害処理およびイベント処理が、このプロセス中に発生します。
                        
SET_ROLEプロシージャは、一般のデータベース・アカウント群で使用できます。 
                        
構文
DBMS_MACSEC_ROLES.SET_ROLE( p_role IN VARCHAR2);
パラメータ
表18-6 SET_ROLEのパラメータ
| パラメータ | 説明 | 
|---|---|
| 
 | ロール名。セキュア・アプリケーション・ロールや標準ロールなど、複数のロールをカンマ( 現行のデータベース・インスタンスで既存のセキュア・アプリケーション・ロールを確認するには、「DBA_DV_ROLEビュー」で説明されている データベース内の既存のすべてのロールを確認するには、『Oracle Databaseリファレンス』で説明されている | 
例
EXEC DBMS_MACSEC_ROLES.SET_ROLE('SECTOR2_APP_MGR, APPS_MGR');
ロール名前は大文字、小文字のいずれでも入力できます(Sector2_APP_MGRなど)。