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
Oracle을 실행하는 Amazon RDS DB 인스턴스와 같이 Amazon에서 관리하는 Oracle 데이터베이스의 경우에는 AWS DMS용 소스로 Amazon 관리형 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은 지속적 복제 과정에서 로그 다시 실행을 읽는 두 가지 방법인 Oracle LogMiner와 Oracle Binary Reader를 제공합니다. 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 디렉터리를 사용하여 다시 실행 및 아카이브 로그를 읽으므로 AWS DMS에 소스 데이터베이스에서 Oracle 디렉터리를 생성할 수 있는 액세스 권한을 부여해야 합니다.
GRANT CREATE ANY DIRECTORY to <dms_user>;
또는 AWS DMS가 소스 Oracle 데이터베이스에서 Oracle 디렉터리를 생성하도록 허용하지 않으려면 다시 실행 및 아카이브 로그 경로에서 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에서 다시 실행 및 아카이브 로그를 읽는 작업은 SYSASM 또는 SYSDBA 권한이 필요한 Oracle DBMS_DISKGROUP 패키지의 함수를 사용하기 때문에 이러한 권한을 필요로 합니다.
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 모드에서는 대기 데이터베이스를 읽기 전용 모드로 열 수 있으므로 앞서 언급한 기본 인스턴스에 대한 권한을 부여해야 합니다. 기본 인스턴스에 대한 권한이 부여된 후 몇 가지 로그 전환을 수행하여 권한이 대기 데이터베이스에 복제되도록 합니다. 자세한 내용은 Forcing Log Switches에 대한 Oracle 문서를 참조하십시오.
관련 정보
Oracle 데이터베이스를 AWS DMS에서 소스로 사용