Oracle をソースエンドポイントとして使用する場合、AWS DMS にはどのような権限が必要ですか?

所要時間3分
0

ソースエンドポイントとして Oracle を使用する AWS Database Migration Service (AWS DMS) タスクがあります。AWS DMS に必要な最低限の権限を知りたいと考えています。

簡単な説明

AWS DMS には、データをターゲットに移行するために、ソースデータベースからデータを読み取る権限が必要です。AWS DMS タスクの設定と実行する移行のタイプによって、必要な権限が異なる場合があります。

解決策

AWS が管理する Oracle ソースデータベース

Amazon が管理する Oracle データベースについては、「Working with an AWS-managed Oracle database as a source for AWS DMS」を参照してください。これには、Amazon Relational Database Service (Amazon RDS) などの Oracle データベースが含まれます。

自己管理型の 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 ログを読み取るために、次の 2 つの方法が用意されています: Oracle LogMiner と Oracle Binary Reader。使用する方法によっては、前述の必要な権限を付与した後に、ソースユーザーに追加の権限を付与する必要があります。

LogMiner を使用するには、次の権限が必要です:

GRANT EXECUTE ON dbms\_logmnr TO <dms\_user>;

Oracle 12c 以降では、次の権限が必要です:

GRANT LOGMINING TO <dms\_user>;

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

GRANT CREATE ANY DIRECTORY to <dms\_user>;

AWS DMS を使用して Oracle ディレクトリを作成するには、CREATE ANY DIRECTORY 権限を付与する必要があります。AWS DMS は DMS_ プレフィックスの付いたディレクトリ名を作成します。CREATE ANY DIRECTORY 権限を付与しない場合は、ディレクトリを手動で作成する必要があります。Oracle ディレクトリを手動で作成する場合、エンドポイントで指定した Oracle ユーザーが、必ずしもディレクトリを作成したユーザーであるとは限りません。このような場合は、READ ON DIRECTORY 権限を付与する必要があります。

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

ディレクトリが作成されたことを確認するには、ALL_DIRECTORIES テーブルにクエリを実行します。Binary Reader を使用して Automatic Storage Management (ASM) の REDO ログにアクセスするには、エンドポイントの Oracle ユーザーに次の権限を付与します:

GRANT SELECT ON v_$transportable_platform  to <dms_user>; - Grant this privilege if the redo logs are stored in Oracle Automatic Storage Management (ASM) and AWS DMS accesses them from ASM.
GRANT SYSASM to <ASM_USER>; - To access the ASM account with Oracle 11g Release 2 (version 11.2.0.2) and higher, grant the Oracle endpoint user the SYSASM privilege. For older supported Oracle versions, it's typically sufficient to grant the Oracle endpoint user the SYSDBA privilege.

Where the Oracle source uses ASM, you can work with high-performance options in Binary Reader for transaction processing at scale. These options include extra connection attributes to specify the number of parallel threads (parallelASMReadThreads) and the number of read-ahead buffers (readAheadBlocks). Setting these attributes together can significantly improve the performance of the CDC task. The following settings provide good results for most ASM configurations.

**注:**AWS DMS は Oracle Active Data Guard スタンバイをソースとしてサポートしています。Active Data Guard モードでは、スタンバイデータベースを読み取り専用モードで開くことができます。プライマリインスタンスで前述の権限を付与したら、複数のログ切り替えを実行して権限をスタンバイデータベースに複製します。詳細については、Oracle ウェブサイトの「Forcing Log Switches」を参照してください。

関連情報

Using an Oracle database as a source for AWS DMS

Using a self-managed Oracle Standby as a source with Binary Reader for CDC in AWS DMS

AWS公式
AWS公式更新しました 6ヶ月前