Oracle をソースエンドポイントとして使用する場合に、AWS DMS が必要とするアクセス権限について教えてください。

最終更新日: 2021 年 2 月 9 日

ソースエンドポイントとして Oracle を使用する AWS Database Migration Service (AWS DMS) タスク実行する必要があります。AWS DMS が要求する最低限のアクセス権限はどのようなものですか?

簡単な説明

AWS DMS には、ターゲットに移行するデータを、ソースデータベースから読み取るためのアクセス権限が必要です。必要とされるアクセス権限は、AWS DMS タスクの設定や実行している移行処理の種類に応じて異なります。移行に必要とされる最低限のアクセス権限は次のとおりです。

  • AWS で管理される Oracle ソースデータベース (すなわち、Amazon Relational Database Service (Amazon RDS))。
  • セルフマネージドの Oracle ソースデータベース
  • 進行中のレプリケーションタスクがある Oracle ソースデータベース

解決方法

AWS で管理されている Oracle ソースデータベース (すなわち、Amazon RDS)

Amazon によって管理される Oracle データベース、たとえば、Oracle を実行する Amazon RDS DB インスタンスなどについては、「Amazon が管理する Oracle データベースを AWS DMS のソースとして使用する」をご参照ください。

セルフマネージドの Oracle ソースデータベース

セルフマネージドの Oracle データベースには、次のアクセス権限が必要です。

GRANT SELECT on V_$DATABASE to <dms_user>;
GRANT SELECT on V_$THREAD to <dms_user>;
GRANT SELECT on V_$PARAMETER to <dms_user>;
GRANT SELECT on V_$NLS_PARAMETERS to <dms_user>;
GRANT SELECT on V_$TIMEZONE_NAMES to <dms_user>;
GRANT SELECT on ALL_INDEXES to <dms_user>;
GRANT SELECT on ALL_OBJECTS to <dms_user>;
GRANT SELECT on ALL_TABLES to <dms_user>;
GRANT SELECT on ALL_USERS to <dms_user>;
GRANT SELECT on ALL_CATALOG to <dms_user>;
GRANT SELECT on ALL_CONSTRAINTS to <dms_user>;
GRANT SELECT on ALL_CONS_COLUMNS to <dms_user>;
GRANT SELECT on ALL_TAB_COLS to <dms_user>;
GRANT SELECT on ALL_IND_COLUMNS to <dms_user>;
GRANT SELECT on ALL_LOG_GROUPS to <dms_user>;
GRANT SELECT on SYS.DBA_REGISTRY to <dms_user>;
GRANT SELECT on SYS.OBJ$ to <dms_user>;
GRANT SELECT on DBA_TABLESPACES to <dms_user>;
GRANT SELECT on ALL_TAB_PARTITIONS to <dms_user>;
GRANT SELECT on ALL_ENCRYPTED_COLUMNS to <dms_user>;
GRANT SELECT ANY TRANSACTION to <dms_user>;
GRANT SELECT on V_$LOGMNR_LOGS to <dms_user>;
GRANT SELECT on V_$LOGMNR_CONTENTS to <dms_user>;
GRANT SELECT on V_$LOG to <dms_user>;
GRANT SELECT on V_$ARCHIVED_LOG to <dms_user>;
GRANT SELECT on V_$LOGFILE to <dms_user>;
GRANT SELECT on V_$TRANSACTION to <dms_user>;

ビューを公開するには、次のアクセス権限が必要です。

GRANT SELECT on ALL_VIEWS to <dms_user>;

注: ビューの公開には、ソースエンドポイントの接続属性として「exposeViews=true」を追加する必要があります。

レプリケーションタスクのテーブル名と一致するパターンを使用するか、別のスキーマからソースデータベースユーザーがテーブルを読み取れるようにするには、次のアクセス権限が必要です。

GRANT SELECT ANY TABLE to <dms_user>;

レプリケーションタスクでテーブルリストを指定するには、次のアクセス許可が必要です。

GRANT SELECT on <schema>.<table > ;

注: テーブルリストのすべてのテーブルにこれらのアクセス権限を追加します。Oracle RAC からの移行時は、プレフィックスが gv_$ および v_$ となっているマテリアライズドビューに対し、SELECT アクセス権限を付与する必要があります。

ラージオブジェクト (LOB) に対する AWS DMS 検証を有効にするには、以下のアクセス権限が必要です。

GRANT execute on sys.dbms_crypto to <dms_user>;

追加の addSupplementalLogging 接続属性を使用する場合は、次のアクセス権限が必要です。

GRANT ALTER ANY TABLE to <dms_user>

進行中のレプリケーションタスクがある Oracle ソースデータベース

Oracle では、レプリケーションが進行中に REDO ログを読み取る方法として、Oracle LogMiner と Oracle Binary Reader の 2 つを提供しています。ソースユーザーに対し前述した基本的なアクセス権限を付与した後、使用するツールが LogMiner であるか Binary Reader であるかに合わせ、追加のアクセス権限を付与する必要があります。

LogMiner を使用するには、次のアクセス権限が必要です。

GRANT EXECUTE ON dbms_logmnr TO <dms_user>;

Oracle 12c には、次のアクセス許可のみが必要です。

GRANT LOGMINING TO <dms_user>;

Binary Reader を使用するには、以下のアクセス許可が必要です。

GRANT SELECT ON v_$transportable_platform  to <dms_user>;

Binary Reader では、Oracle ディレクトリを使用して REDO ログとアーカイブログを読み取ります。したがって、ソースデータベースに Oracle ディレクトリを作成するアクセス権限を AWS DMS に付与する必要があります。

GRANT CREATE ANY DIRECTORY to <dms_user>;

また、ソースである Oracle データベースで Oracle ディレクトリを AWS DMS が 作成することを望まないのであれば、REDO ログとアーカイブのログパスに Oracle ディレクトリを事前に作成しておくこともできます。その後、これらのディレクトリの AWS DMS ユーザーに対し、READ のアクセス権限を付与します。

GRANT READ ON DIRECTORY <RedoLog_directory_name> to <dms_user>;
GRANT READ ON DIRECTORY <ArchiveLog_directory_name> to <dms_user>;

最後に、ALL_DIRECTORIES テーブルにクエリを実行して、ディレクトリが作成されていることを確認します。

ソースデータベースが Oracle ASM を使用している場合、次のアクセス権限が必要です。

GRANT SYSASM  to <ASM_user>;

注: Oracle ASM から REDO ログとアーカイブログを読み取るために使用する、Oracle DBMS_DISKGROUP パッケージ内の関数で、SYSASM または SYSDBA 権限が必要なため、これらのアクセス権限も必要になります。

追加の接続属性として copyToTempFolder を使用する場合は、新たにディレクトリを作成して、次のアクセス権限を付与する必要があります。

Create directory <bfile_dir> as <copyToTempFolder_PATH>;
GRANT READ, WRITE ON DIRECTORY <bfile_dir> TO <dms_user>;

AWS DMS バージョン 3.1 以降では、parallelASMReadThreads の追加の接続属性を追加することをお勧めします。詳細については、「変更データキャプチャ (CDC) に Oracle LogMiner または Oracle Binary Reader を使用する」をご参照ください。

注: AWS DMS では、ソースとして Oracle Active Data Guard Standby がサポートされています。Active Data Guard モードでは、スタンバイデータベースは読み取り専用モードで開かれるため、プライマリインスタンスに対して前述のアクセス権限を付与する必要があります。プライマリインスタンスにアクセス権限が付与されたら、ログ切り替えを数回実行して、アクセス権限がスタンバイデータベースにレプリケートされるようにします。詳細な情報については、Oracle ドキュメンテーションの「Forcing log switches」をご参照ください。


この記事はお役に立ちましたか?


請求に関するサポートまたは技術的なサポートが必要ですか?