ターゲット・データベースでのOracle Data Safeサービス・アカウントへのロールの付与

ターゲット・データベースで使用できるOracle Data Safeの機能は、ターゲット・データベースでOracle Data Safeサービス・アカウントに許可されるロールによって異なります。必要に応じて、ロールを付与したり、取り消すことができます。

ロールは、Autonomous AIデータベースと非Autonomous AIデータベースでは異なります。非Autonomous AIデータベースの場合、データベースの登録前または登録後にOracle Data Safeサービス・アカウントにロールを付与できます。Autonomous AI Databaseでは、まずデータベースを登録する必要があります。これにより、Oracle Data Safeの事前シード済サービス・アカウントのロックが解除され、必要に応じてロールの付与および取消しが行われます。デフォルトでは、Autonomous AI Database上のOracle Data Safeサービス・アカウントには、すでに一部のロールが付与されています。

Oracle Data Safeサービス・アカウントのロール

ノート

ノート:ターゲット・データベースのOracle Data Safeサービスに必要なロールのみを付与します。ロールの付与方法は、所有するターゲット・データベースのタイプによって異なります。

次の表に、非Autonomous AIデータベースおよびAutonomous AIデータベースのロールを示します。非Autonomous AIデータベース(DBシステム、オンプレミスのOracleデータベース、コンピュート・インスタンス上のOracleデータベースなど)を登録する場合、最初の列のロールを付与できます。Autonomous AI Databaseを登録する場合は、2番目の列のロールを付与できます。デフォルトでは、一部またはほとんどのロールがデフォルトで付与されるため、各タイプのターゲット登録を参照することをお薦めします。

非Autonomous AIデータベースのロール Autonomous AI Databaseのロール 説明
ASSESSMENT DS$ASSESSMENT_ROLE ユーザー評価およびセキュリティ評価機能に必要な権限
AUDIT_COLLECTION DS$AUDIT_COLLECTION_ROLE ターゲット・データベースの監査証跡へのアクセスに必要な権限
DATA_DISCOVERY DS$DATA_DISCOVERY_ROLE データ検出機能(ターゲット・データベース内の機密データの検出)に必要な権限
MASKING DS$DATA_MASKING_ROLE データ・マスキング機能(ターゲット・データベース内の機密データのマスキング)に必要な権限
AUDIT_SETTING DS$AUDIT_SETTING_ROLE ターゲット・データベースの監査ポリシーの更新に必要な権限
SQL_FIREWALL DS$SQL_FIREWALL_ROLE SQLファイアウォール機能に必要な権限(SQLトラフィックの収集、監視および許可およびブロック)。これは、Oracle AI Database 26ai以降専用です。

Autonomous AI Database上のOracle Data Safeサービスへのロールの付与

デフォルトでは、Autonomous AI Databaseには、Oracle Data Safe専用に作成されたDS$ADMINという名前のデータベース・アカウントが付属しています。このアカウントに付与するロールにより、Autonomous AI Databaseで使用できるOracle Data Safeの機能が決まります。

Autonomous AI Databaseでは、DS$DATA_MASKING_ROLEおよびDS$SQL_FIREWALL_ROLEを除き、すべてのロールがすでにデフォルトで付与されています。

データ・マスキング用の特別なユーザーを作成する場合は、ロールの付与および取消し時にそのユーザー名を指定する必要があります。

ノート

ノート: Autonomous AIデータベースでDatabase Vaultが有効になっている場合は、Oracle Data SafeとDatabase Vaultを協力させるために、次の手順を実行する必要がある特定のステップがあることに注意してください。

Autonomous AI DatabaseでOracle Data Safeサービス・アカウントに対してロールを付与または取り消す場合は、データベースでDS_TARGET_UTIL PL/SQLパッケージを実行できます。このパッケージは、PDB管理ユーザー(ADMIN)またはDS_TARGET_UTIL PL/SQLパッケージに対する実行権限を持つユーザーとして実行する必要があります。必要に応じて、ロールを付与または取り消すことができます。

  1. Oracle Data Safeサービス・アカウントに対してロールを付与または取り消すには、次の手順を実行します:

    1. SQL*PlusやSQL Developerなどのツールを使用して、Autonomous AI DatabaseにPDB Adminユーザー(ADMIN)またはDS_TARGET_UTIL PL/SQLパッケージに対する実行権限を持つユーザーとしてログインします。

    2. ロールを付与するには、次のコマンドを実行します。<ROLE_NAME>は、Oracle Data Safeロールの名前であり、引用符で囲む必要があります。<USERNAME>は、Oracle Data Safeサービス・アカウントの名前です。Database Vaultがデータベースで有効になっていて、DS$DATA_MASKING_ROLEロールを付与する場合は、ORA-20001エラーが予期してステップ3に進みます。

    DS$ADMINにロールを付与する場合:

    EXECUTE DS_TARGET_UTIL.GRANT_ROLE('<ROLE_NAME>');

    作成したユーザーにロールを付与する場合は、ユーザー名を含めます。

    EXECUTE DS_TARGET_UTIL.GRANT_ROLE('<ROLE_NAME>', '<USERNAME>');
    1. ロールを取り消すには、次のコマンドを実行します。<ROLE_NAME>は、Oracle Data Safeロールの名前であり、引用符で囲む必要があります。<USERNAME>は、Oracle Data Safeサービス・アカウントの名前です。

    DS$ADMINからロールを取り消す場合:

    EXECUTE DS_TARGET_UTIL.REVOKE_ROLE('<ROLE_NAME>');

    作成したユーザーからロールを取り消す場合は、ユーザー名を含めます。

    EXECUTE DS_TARGET_UTIL.REVOKE_ROLE('<ROLE_NAME>', '<USERNAME>');
  2. データベースでDatabase Vaultが有効で、Oracle Data Safeで次の機能を使用する場合は、次の手順を実行します:

    • 「ユーザー評価」または「セキュリティ評価」: DV_OWNERロールを持つユーザーとしてデータベースに接続し、DV_SECANALYSTロールをDS$ADMINユーザーに付与します。

    • データ・マスキングの場合: DV_OWNERロールを持つユーザーとしてデータベースに接続し、ADMINユーザーをOracleシステム権限およびロール管理レルムに認可します。ADMINユーザーとしてデータベースに接続し、UNLIMITED TABLESPACEDS$ADMINユーザーに付与します。

    • SQLファイアウォールの場合: PDB Adminユーザー(ADMIN)またはDV_ADMINまたはDV_OWNERロールを持つユーザーとしてロールを付与した場合、このステップは不要です。ただし、そうしなかった場合は、DV_ADMINまたはDV_OWNERロールを持つユーザーとしてデータベースに接続し、DV_ADMIN またはDV_OWNERロールを持つユーザーとして次のコマンドを実行します。

    BEGIN
        DBMS_MACADM.AUTHORIZE_SQL_FIREWALL (
        uname => '<USERNAME>',
        manage_dv_admins => 'N');
    END;
    /
  3. データベースでDatabase Vaultが有効になっていて、Oracle Data Safeの次の機能を取り消す場合は、次を実行します:

    • 「ユーザー評価」または「セキュリティ評価」: DV_OWNERロールを持つユーザーとしてデータベースに接続し、DS$ADMINユーザーからDV_SECANALYSTロールを取り消します。

    • データ・マスキングの場合: ADMINユーザーとしてデータベースに接続し、DS$ADMINユーザーからUNLIMITED TABLESPACEを取り消します。DV_OWNERロールを持つユーザーとしてデータベースに接続し、Oracleシステム権限およびロール管理レルムからADMINユーザーに認可解除します。

    • SQL Firewallの場合: DV_ADMINまたはDV_OWNERロールを持つユーザーとしてデータベースに接続し、次のコードを実行します。その後、ステップ1に従ってSQL_FIREWALLロールを取り消します。

    BEGIN
        DBMS_MACADM.UNAUTHORIZE_SQL_FIREWALL (
            uname => '<USERNAME>',
            manage_dv_admins => 'Y');
        END;
    /

非Autonomous AIデータベースでのOracle Data Safeサービスへのロールの付与

Oracle Data Safeサービス・アカウントに対して非Autonomous AIデータベースに対してロールを付与または取り消すには、datasafe_privileges.sqlというSQL権限スクリプトを実行する必要があります。このスクリプトは、Oracle Cloud InfrastructureのOracle Data Safeからダウンロードできます。スクリプトを実行するには、SYSユーザーとしてデータベースに接続する必要があります。

このスクリプトは必要に応じて何回でも実行できます。たとえば、最初に、Oracle Data Safeでアクティビティ監査機能のみを使用する必要があるとします。SQL権限スクリプトを実行し、アクティビティ監査のみへのアクセス権をデータベースに付与できます。後で、データ検出機能も使用することにします。データベースでSQL権限スクリプトを再度実行して、データ検出へのアクセス権をデータベースに付与できます。

  1. ターゲット・データベースでDatabase Vaultが有効で、1Oracle Data Safeのユーザー評価またはセキュリティ評価機能を使用する場合は、DV_OWNERロールを持つユーザーとしてデータベースに接続し、DV_SECANALYSTロールおよびDV_MONITORロールにOracle Data Safeサービス・アカウントを付与します。

  2. SQL権限スクリプトをダウンロードします。このスクリプトは、ターゲット・データベースの登録を支援するウィザード内で使用できます。現時点では、ウィザードを使用してターゲット・データベースを登録する必要はありません。ウィザードを起動すると、最初のページにスクリプトをダウンロードするためのリンクが表示されます。スクリプトをダウンロードしてウィザードを終了します。

    1. Oracle Data Safeサービスの「概要」ページで、操作しているデータベースのタイプに対応するウィザードのタイルを見つけます。「ウィザードの起動」をクリックします。ウィザードに「Data Safeターゲット情報」フォームが表示されます。

    2. 「権限スクリプトのダウンロード」をクリックし、datasafe_privileges.sqlスクリプトをコンピュータに保存します。

    3. 「取消」をクリックします。

  3. SQL DeveloperまたはSQL*Plusを使用して、SYSユーザーとしてデータベースに接続した後、次の文を使用してSQL権限スクリプトを実行します。

    @datasafe_privileges.sql <DATASAFE_ADMIN> <GRANT|REVOKE> <AUDIT_COLLECTION|AUDIT_SETTING|DATA_DISCOVERY|MASKING|ASSESSMENT|SQL_FIREWALL|ALL> [-RDSORACLE][-VERBOSE]
    • <DATASAFE_ADMIN>は、データベースで作成したOracle Data Safeサービス・アカウントの名前です。大/小文字が区別され、データベース内のdba_usersデータ・ディクショナリ・ビューでのアカウント名と一致する必要があります。

    • Oracle Data Safeサービス・アカウントに対して権限の追加または権限の削除のどちらを行うかに応じて、GRANTまたはREVOKEを指定します。

    • コマンドごとに指定できる機能は1つのみですが、ALLはすべての機能の権限を付与または取り消します。

    • Amazon RDS for Oracleを登録する場合、-RDSORACLE必須であり、それ以外の場合はパラメータを削除します

    • -VERBOSEはオプションです。

    例:すべての権限を付与し、すべてのOracle Data Safe機能を使用可能にします

    @datasafe_privileges.sql <DATASAFE_ADMIN> GRANT ALL -VERBOSE

    例:作成機能の使用に必要な権限を付与します。

    @datasafe_privileges.sql <DATASAFE_ADMIN> GRANT MASKING
  4. データベースでDatabase Vaultが有効になっていて、Data SafeのSQLファイアウォール機能を使用する場合は、DV_ADMINまたはDV_OWNERロールのいずれかを持つユーザーとして次を実行します:

    BEGIN
        DBMS_MACADM.AUTHORIZE_SQL_FIREWALL (
        uname => '<DATASAFE_ADMIN>',
        manage_dv_admins => 'N');
    END;
    /
  5. データベースでDatabase Vaultが有効になっていて、Data SafeのSQLファイアウォール機能の使用を停止する場合は、DV_ADMINまたはDV_OWNERロールのいずれかを持つユーザーとして次を実行します:

    1. 次を実行します。

      BEGIN
          DBMS_MACADM.UNAUTHORIZE_SQL_FIREWALL (
              uname => '<DATASAFE_ADMIN>',
              manage_dv_admins => 'Y');
          END;
      /
    2. ステップ3を実行して、SQLファイアウォール権限を取り消します。