Oracle AI Database에 대한 연결 구성

데이터베이스 측에서 Oracle GoldenGate에 연결하는 데 필요한 사용자 권한 및 Oracle AI Database와 Oracle GoldenGate에 대한 연결을 설정하는 구성 지침에 대해 알아봅니다.

Oracle 데이터베이스 사용자 및 권한 준비

데이터베이스 유저 생성 및 Oracle용 Oracle GoldenGate 권한 할당에 대해 알아봅니다.

주: Extract와 Replicat 모두 데이터베이스를 읽기/쓰기 모드로 설정해야 합니다. DML 재지정이 활성화된 경우에도 Extract는 읽기 전용 작업을 위해 열려 있는 Data Guard 대기 데이터베이스 또는 Active Data Guard 대기 데이터베이스에서 캡처할 수 없습니다.

Oracle AI Database 26ai 이상에 대한 사용자 권한 부여

Oracle AI Database 26ai는 SQL 문을 통해 데이터베이스 사용자에게 역할 기반 권한을 부여할 수 있는 사용자 역할을 제공합니다.

Oracle AI Database 26ai는 역할 기반 접근 방식을 사용하여 복제에 필요한 권한을 부여합니다. 롤은 DBMS_GOLDENGATE_AUTH 패키지에서 GRANT_ADMIN_PRIVILEGE 프로시저를 대체합니다.

예를 들어, Oracle GoldenGate 관리 사용자를 생성하려면 사용자를 생성하는 동안 사용자에게 적합한 OGG_* 롤을 부여해야 합니다. Oracle AI Database 26ai의 DBMS_GOLDENGATE_AUTH 패키지에서 GRANT_ADMIN_PRIVILEGE 프로시저를 계속 사용하는 경우 권한이 부여되지 않습니다. 대신 프로시저 호출이 사용 안함으로 설정되었음을 알리는 경고 메시지가 표시됩니다.

Oracle GoldenGate 26ai에 도입된 사용자 역할은 다음과 같습니다.

OGG_CAPTURE

OGG_CAPTURE에는 Extract 프로세스 사용 및 관리에 필요한 권한이 있습니다.

Extract를 사용하여 DML 및 DDL을 캡처하려면 사용자에게 다음 권한이 필요합니다.

GRANT CONNECT, RESOURCE to ggadmin CONTAINER = all;
GRANT OGG_CAPTURE to ggadmin CONTAINER = all;

추출 프로세스가 루트 컨테이너에 등록된 경우 다음 추가 단계를 수행해야 합니다.

ALTER USER ggadmin SET CONTAINER_DATA = all CONTAINER = current;

OGG_APPLY

Oracle GoldenGate Replicat 사용에 필요한 권한이 있는 롤입니다.

Replicat 프로세스를 사용하려면 사용자에게 이 롤과 대상에서 DML 및 DDL을 실행할 수 있는 권한이 필요합니다. 예를 들어, Replicat 프로세스가 HR 스키마에서 EMPLOYEES 테이블에 대해 DML 작업을 수행하도록 의도된 경우 다음과 같습니다.

GRANT CONNECT, RESOURCE to ggadmin;
GRANT OGG_APPLY to ggadmin;
GRANT SELECT, INSERT, UPDATE, DELETE on HR.EMPLOYEES TO GGADMIN;

Replicat 사용자가 CREATE TABLE, DROP TABLE 및 ALTER TABLE와 같은 DDL 작업을 적용하려는 경우 해당 명령문을 실행하는 데 필요한 시스템 권한을 받아야 합니다.

GRANT CREATE TABLE, ALTER TABLE, DROP TABLE to ggadmin;

OGG_APPLY_PROCREP

Oracle GoldenGate를 통한 프로시저 복제에 지원되는 패키지를 실행하는 데 필요한 권한이 있는 롤입니다. 여기에는 실행 권한만 포함되므로 사용자가 Replicat 프로세스를 실행하고 대상에서 프로시저를 실행할 수 있도록 하려면 이 롤을 OGG_APPLY 롤과 함께 사용해야 합니다.

예를 들어, Replicat가 프로시저 실행을 적용하는 경우입니다. 권한 부여 프로세스는 다음과 같아야 합니다.

GRANT CONNECT, RESOURCE to ggadmin;
GRANT OGG_APPLY, OGG_APPLY_PROCREP to ggadmin;

Oracle Database 21c 및 Lower에 대한 사용자 권한 부여

Oracle GoldenGate에서 Oracle AI Database에 접속하는 데 필요한 사용자 권한은 사용자 유형에 따라 다릅니다.

소스 및 대상 데이터베이스에서 사용자가 GoldenGate 관리자 사용자로 수행해야 하는 작업에 따라 권한이 부여되어야 합니다. 예를 들어, 유저에게 트랜잭션을 삽입, 갱신 및 삭제할 수 있는 DML 작업 권한을 부여하려면 GRANT ANY INSERT/UPDATE/DELETE 권한을 사용하고, 유저가 DML 작업의 일부로 테이블 및 인덱스를 사용할 수 있도록 하려면 GRANT CREATE/DROP/ALTER ANY TABLE/INDEX 권한을 사용합니다.

GoldenGate 관리자 사용자에게 DBA 롤이 있는 경우 추가 객체 권한이 필요하지 않습니다. 그러나 GoldenGate 관리 사용자에게 DBA 롤을 부여하는 보안 제약 조건이 있을 수 있습니다. DBA 롤이 Oracle GoldenGate에 반드시 필요한 것은 아닙니다.

복제되는 객체가 많으면 DML 및 DDL 작업에 ANY 권한을 사용하는 것이 좋습니다. 이렇게 하면 데이터베이스 작업에 따라 몇 가지 권한만 부여하면 되므로 GoldenGate 관리자 사용자에게 권한을 간단히 제공할 수 있습니다.

다음 표에서는 Oracle AI Database에 대한 GoldenGate 관리자 사용자의 필수 권한 중 일부를 설명합니다. 설명 목적으로 이 표는 다중 테넌트 컨테이너 데이터베이스에 대한 일반 사용자의 예로 c##ggadmin를 사용하고, PDB(플러거블 데이터베이스) 사용자로 ggadmin를 사용합니다. PDBEAST 및 PDBWEST는 PDB 이름의 예로 사용됩니다.

다음 표에서는 GoldenGate 관리자 사용자가 소스 및 대상 Oracle 데이터베이스에서 Oracle GoldenGate를 사용하는 데 필요한 필수 권한을 설명합니다.

권한 Extract Replicat 모든 모드 목적
RESOURCE 예. 예.

객체를 생성하는 데 필요

Oracle Database 12cR1 이상에서는 RESOURCE 대신 다음 권한을 부여합니다.

ALTER USER user QUOTA {size | UNLIMITED} ON tablespace;
CONNECT 예. 예.

공통 사용자 SYSTEM는 루트 컨테이너에 연결됩니다. 이 권한은 DBA 롤이 유저에게 할당되지 않은 경우에 필수적입니다.

Oracle mutitenant 데이터베이스 일반 사용자에게 부여된 권한 예를 참조하십시오.

CREATE PROCEDURE 예. 예. Heartbeat 테이블을 추가하는 데 필요합니다.
CREATE SESSION 예. 예. 데이터베이스에 연결하려면 필수입니다.
CREATE VIEW 예. 예.

하트비트 테이블 뷰를 추가하는 데 필요합니다.

각 객체에 대해 개별적으로 권한을 부여하려는 경우 각 객체에 대해 개별적으로 권한을 제공할 수도 있습니다. 이러한 권한을 유지 관리하기 위해 특정 데이터베이스 롤을 생성할 수도 있습니다.

ALTER SYSTEM 예. 예. 로깅 활성화와 같은 관리 변경을 수행합니다.
ALTER USER 예. 예. 다중 테넌트 아키텍처에 필요하며 GGADMIN는 적합한 Oracle GoldenGate 관리자 스키마여야 합니다.
EXEC DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE ('REPUSER', CONTAINER=>'PDBEAST'); 예. 예.

  • 자율운영 AI 데이터베이스(ATP 및 ADW) 추출 및 복제에 필요합니다. 루트 컨테이너(CDB$ROOT))의 추출에는 값 ALL 또는 특정 PDB(예: pdbeast)가 필요할 수 있습니다.

  • Extract 및 Replicat 사용자에 대한 권한을 부여합니다. 예제: DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE 패키지를 사용하여 권한 부여를 참조하십시오.

  • 가상 전용 데이터베이스에서 캡처할 수 있는 권한 부여

  • 개정된 데이터 캡처 권한을 부여합니다.

SYS 사용자로 접속된 DV_GOLDENGATE_ADMIN 및 DV_GOLDENGATE_REDO_ACCESS 권한을 Extract 및 Replicat 사용자에게 부여합니다. 예. 예. Data Vault에서 캡처합니다. Oracle Data Vault에서 캡처할 수 있는 권한을 참조하십시오.
영역에 적용할 경우 DBMS_MACADM.ADD_AUTH_TO_REALM에서 Replicat 권한을 부여합니다. 예. 예. 대상 테이블인 Capture from Data Vault에서 데이터를 캡처하려면 초기 로드 Extract에 필요합니다. Oracle Data Vault에서 캡처할 수 있는 권한을 참조하십시오.
대상 테이블의 INSERT, UPDATE, DELETE 해당 사항 없음 예. 복제된 DML을 대상 객체에 적용합니다. Oracle DML에서 객체 및 작업에 대한 지원 세부정보를 참조하십시오.

GRANT INSERT ANY TO...
GRANT UPDATE ANY TO...
GRANT DELETE ANY TO...

해당 사항 없음 예. 모든 테이블을 복제하는 경우 모든 테이블에 INSERT, UPDATE, DELETE를 부여하는 대신 Replicat 사용자에게 이러한 권한을 부여합니다.

DDL 복제가 수행되는 경우 Database Vault 소유자로 다음을 부여합니다.

EXECUTE DBMS_MACADM.AUTHORIZE_DDL('GGADMIN USER', 'SCHEMA FOR DDL');
아니요 아니요 Data Vault에서 캡처합니다. Oracle Data Vault에서 캡처할 수 있는 권한을 참조하십시오.
대상 객체에 대한 DDL 권한(DDL 지원을 사용하는 경우) 해당 사항 없음 예. 대상 객체에 대해 복제된 DDL을 실행합니다. Oracle DDL의 객체 및 작업에 대한 지원 세부 정보를 참조하십시오.
GRANT [CREATE\|ALTER\|DROP] ANY [TABLE\|INDEX\|VIEW\|PROCEDURE] to GGADMIN; 예. 예. 테이블에 대한 DDL 복제 권한을 부여합니다.
CREATE ANY TABLE 예. 예. 스키마에서 테이블을 생성할 수 있는 권한을 부여합니다. 특정 스키마에서만 테이블 생성을 허용하려면 CREATE TABLE 권한을 사용합니다.
CREATE ANY VIEW 예. 예. 모든 데이터베이스 스키마에서 뷰를 생성할 수 있는 권한을 부여합니다. 특정 스키마에서 뷰를 생성할 수 있도록 하려면 CREATE VIEW 권한을 사용합니다.

SELECT ANY DICTIONARY

예. 예. 딕셔너리 테이블에서 모든 권한이 제대로 작동하도록 허용합니다.

예: Oracle AI Database 일반 사용자에 대해 부여된 권한

Oracle AI Database 일반 사용자에 대해 부여된 권한(다음 예의 경우 c##ggadmin)입니다.

ALTER USER c##ggadmin IDENTIFIED BY ggadmin CONTAINER=all;
ALTER USER c##ggadmin SET CONTAINER_DATA=all CONTAINER=current;
ALTER USER c##ggadmin QUOTA unlimited ON GG_DATA;
TABLESPACE GG_DATA TEMPORARY TABLESPACE temp;
GRANT RESOURCE to c##ggadmin;
GRANT CREATE SESSION to c##ggadmin;
GRANT CREATE VIEW to c##ggadmin;
GRANT CREATE TABLE to c##ggadmin;
GRANT CONNECT to c##ggadmin CONTAINER=all;
GRANT DV_GOLDENGATE_ADMIN; --- for data vault user
GRANT DV_GOLDENGATE_REDO_ACCESS; --- for data vault user
GRANT ALTER SYSTEM to c##ggadmin;
GRANT ALTER USER to c##ggadmin;
GRANT SELECT ANY DICTIONARY to c##ggadmin;
GRANT SELECT ANY TRANSACTION to c##ggadmin;
EXEC DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE('c##ggadmin');

이 예제에서는 DBA 권한이 제공되지 않습니다. 권한이 없으면 DBA는 필요한 권한을 추가로 부여해야 합니다.

다음 예에서는 PDB 사용자 ggadmin에 대해 부여된 권한을 제공합니다.

ALTER SESSION SET CONTAINER=dbwest;
ALTER USER c#ggadmin IDENTIFIED BY ggadmin CONTAINER=all;
GRANT CONNECT, RESOURCE, DBA TO c##ggadmin CONTAINER=CURRENT;
GRANT ALTER SESSION TO c##ggadmin CONTAINER=all;
EXEC DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE('ggadmin');

주: 모든 사용자에 대해 DBA 롤 부여가 필수는 아닙니다. 데이터베이스에 대해 유저가 수행해야 하는 작업에 따라 권한이 부여되어야 합니다. 예를 들어, ggadmin에 트랜잭션을 삽입, 갱신, 삭제할 수 있는 DML 작업 권한을 부여하려면 GRANT ANY INSERT/UPDATE/DELETE 권한을 사용합니다. 사용자가 DML 작업의 일부로 테이블 및 인덱스를 추가로 사용할 수 있도록 하려면 GRANT CREATE/DROP/ALTER ANY TABLE/INDEX 권한을 사용합니다.

예: DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE 패키지를 사용하여 권한 부여

이 프로시저는 사용자가 Oracle GoldenGate 관리자로 필요한 권한을 부여합니다. 다음 예제는 Oracle 다중 테넌트 데이터베이스에서 Extract에 대한 명시적 권한을 부여합니다.

BEGIN
DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE
(GRANTEE => 'c##ggadmin'
,PRIVILEGE_TYPE => 'CAPTURE'
,GRANT_SELECT_PRIVILEGES => TRUE
,DO_GRANTS => TRUE
,CONTAINER => 'ALL');
END;

자세한 내용은 Oracle AI Database PL/SQL Packages and Types Reference의 DBMS_GOLDENGATE_AUTH를 참조하십시오.

Oracle Data Vault에서 캡처에 대한 권한

Oracle AI Database에서 SYS 사용자로 연결된 다음 권한을 부여합니다. 다음 권한은 Extract 및 Replicat 사용자 인증서에 대해 설정됩니다.

-

EXEC DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE ('*userID*','*',
GRANT_OPTIONAL_PRIVILEGES=>'*');
GRANT DV_GOLDENGATE_ADMIN, DV_GOLDENGATE_REDO_ACCESS to *userID*;