Configurar Conexões com o Oracle AI Database

Saiba mais sobre os privilégios de usuário necessários no banco de dados para estabelecer conexão com o Oracle GoldenGate e instruções de configuração para configurar conexões do Oracle AI Database com o Oracle GoldenGate.

Preparar Usuários e Privilégios do Banco de Dados para a Oracle

Saiba mais sobre como criar usuários de banco de dados e designar privilégios para o Oracle GoldenGate for Oracle.

Observação: Extract e Replicat exigem que o banco de dados esteja no modo Leitura/Gravação. Um Extract não pode ser capturado de um banco de dados stand-by do Data Guard ou de um banco de dados stand-by do Active Data Guard aberto para atividade somente para leitura, mesmo com o redirecionamento DML ativado.

Conceder Privilégios de Usuário para o Oracle AI Database 26ai e Superior

O Oracle AI Database 26ai fornece atribuições de usuário para conceder privilégios baseados em atribuição a um usuário do banco de dados com instruções SQL.

O Oracle AI Database 26ai usa uma abordagem baseada em atribuição para conceder os privilégios necessários para replicação. As funções são um substituto dos procedimentos GRANT_ADMIN_PRIVILEGE do pacote DBMS_GOLDENGATE_AUTH.

Por exemplo, para criar um usuário do Oracle GoldenGate Administration, você precisa conceder a atribuição OGG_* apropriada ao usuário ao criar o usuário. Se você ainda usar procedimentos GRANT_ADMIN_PRIVILEGE do pacote DBMS_GOLDENGATE_AUTH no Oracle AI Database 26ai, nenhum privilégio será concedido. Em vez disso, uma mensagem de aviso é gerada alertando que a chamada de procedimento está desativada.

Veja a seguir as atribuições de usuário introduzidas no Oracle GoldenGate 26ai:

OGG_CAPTURE

OGG_CAPTURE tem os privilégios necessários para usar e gerenciar processos de Extract.

Para capturar DML e DDL com Extract, um usuário requer as seguintes permissões:

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

Se o processo Extract estiver registrado no contêiner raiz, essa etapa adicional deverá ser executada:

ALTER USER ggadmin SET CONTAINER_DATA = all CONTAINER = current;

OGG_APPLY

Atribuição com privilégios necessários para usar o processo Replicat do Oracle GoldenGate.

Para usar um processo Replicat, um usuário precisa dessa atribuição, bem como das permissões para executar DML e DDL no destino. Por exemplo, se um processo Replicat for destinado a executar operações DML na tabela EMPLOYEES do esquema HR:

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

Se o usuário Replicat tiver a intenção de aplicar operações DDL como CREATE TABLE, DROP TABLE e ALTER TABLE, ele deverá receber os privilégios de sistema necessários para executar essas instruções:

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

OGG_APPLY_PROCREP

Atribuição com privilégios necessários para executar pacotes suportados para replicação procedural com o Oracle GoldenGate. Portanto, ela só inclui as permissões de execução. Essa função deve ser usada em conjunto com a função OGG_APPLY para permitir que o usuário execute o processo Replicat e os procedimentos no destino.

Por exemplo, se um Replicat aplicar as execuções dos procedimentos. O processo de concessão deve ser o seguinte:

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

Conceder Privilégios de Usuário para o Oracle Database 21c e Inferiores

Os privilégios de usuário necessários para estabelecer conexão com o Oracle AI Database pelo Oracle GoldenGate dependem do tipo de usuário.

Os privilégios devem ser concedidos dependendo das ações que o usuário precisa executar como o Usuário Administrador GoldenGate nos bancos de dados de origem e de destino. Por exemplo, para conceder privilégios de operação DML para inserir, atualizar e excluir transações para um usuário, use os privilégios GRANT ANY INSERT/UPDATE/DELETE e para permitir ainda mais que os usuários trabalhem com tabelas e índices como parte das operações DML, use os privilégios GRANT CREATE/DROP/ALTER ANY TABLE/INDEX.

Se o usuário Administrador GoldenGate tiver a atribuição DBA, não serão necessários privilégios de objeto adicionais. No entanto, pode haver restrições de segurança concedendo a atribuição de DBA ao usuário de Administração GoldenGate. A atribuição DBA não é necessariamente necessária para o Oracle GoldenGate.

Se houver muitos objetos sendo replicados, você poderá considerar o uso do privilégio ANY para operações DML e DDL. Isso simplifica o provisionamento de privilégios para os usuários Administradores GoldenGate, pois você só precisa conceder alguns privilégios, dependendo das operações do banco de dados.

A tabela a seguir descreve alguns dos privilégios essenciais do usuário Administrador do GoldenGate para o Oracle AI Database. Para fins de explicação, a tabela usa c##ggadmin como exemplo de usuário comum para um banco de dados contêiner multitenant e ggadmin como usuário do banco de dados plugável (PDB). PDBEAST e PDBWEST são usados como exemplos de nomes de PDB.

A tabela a seguir descreve os privilégios essenciais para o usuário Administrador do GoldenGate para usar o Oracle GoldenGate com Bancos de Dados Oracle de origem e destino:

Privilégio Extrair Replicar Todos os Modos Finalidade
RESOURCE Sim Sim

Obrigatório para criar objetos

No Oracle Database 12cR1 e em versões posteriores, em vez de RESOURCE, conceda o seguinte privilégio:

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

O usuário comum SYSTEM se conecta ao contêiner raiz. Esse privilégio é essencial quando a atribuição de DBA não é designada ao usuário.

Consulte um exemplo de Permissões concedidas a um usuário comum do banco de dados Oracle mutitenant.

CREATE PROCEDURE Sim Sim Obrigatório para adicionar tabelas de heartbeat.
CREATE SESSION Sim Sim Obrigatório para conectar-se ao banco.
CREATE VIEW Sim Sim

Obrigatório para adicionar a exibição da tabela de pulsação.

Se quiser ser específico a cada objeto, você também poderá fornecer os privilégios de cada objeto individualmente. Você pode considerar a criação de uma atribuição de banco de dados específica para manter esses privilégios.

ALTER SYSTEM Sim Sim Realize alterações administrativas, como ativar o registro em log.
ALTER USER Sim Sim Obrigatório para arquitetura multitenant e GGADMIN deve ser um esquema de administrador válido do Oracle GoldenGate.
EXEC DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE ('REPUSER', CONTAINER=>'PDBEAST'); Sim Sim

  • Obrigatório para Extração e Replicação de Autonomous AI Databases (ATP e ADW). As extrações no contêiner raiz (CDB$ROOT)) podem exigir um valor ALL ou um PDB específico (exemplo: pdbeast).

  • Conceder privilégios para usuários Extract e Replicat. Consulte Exemplo: Conceder privilégios usando o pacote DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE

  • Conceder privilégios para capturar do Virtual Private Database

  • Concede privilégios para capturar dados omitidos

Conceda os privilégios DV_GOLDENGATE_ADMIN e DV_GOLDENGATE_REDO_ACCESS conectados como usuário SYS ao usuário Extract e Replicat. Sim Sim Captura do Data Vault. Consulte Privilégios para Capturar do Oracle Data Vault.
Conceda privilégios de Replicat em DBMS_MACADM.ADD_AUTH_TO_REALM se estiver aplicando a um realm. Sim Sim Obrigatório pelo Extract de carga inicial para capturar dados da tabela de destino, Capturar do Data Vault. Consulte Privilégios para Capturar do Oracle Data Vault.
INSERT, UPDATE, DELETE nas tabelas de destino NA Sim Aplique DML replicado aos objetos de destino. Consulte Detalhes do Suporte para Objetos e Operações no Oracle DML

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

NA Sim Conceda esses privilégios ao usuário Replicat, em vez de conceder INSERT, UPDATE, DELETE a cada tabela, se estiver replicando cada tabela.

Se a replicação DDL for executada, conceda o seguinte como proprietário do Database Vault:

EXECUTE DBMS_MACADM.AUTHORIZE_DDL('GGADMIN USER', 'SCHEMA FOR DDL');
Não Não Captura do Data Vault. Consulte Privilégios para Capturar do Oracle Data Vault.
Privilégios DDL em objetos de destino (se estiver usando suporte a DDL) NA Sim Emita DDL replicada nos objetos de destino. Consulte Detalhes do Suporte para Objetos e Operações no Oracle DDL.
GRANT [CREATE\|ALTER\|DROP] ANY [TABLE\|INDEX\|VIEW\|PROCEDURE] to GGADMIN; Sim Sim Concede privilégios para Replicação de DDL para tabelas.
CREATE ANY TABLE Sim Sim Concede privilégios para criar tabelas em qualquer esquema. Para permitir a criação de tabelas somente em um esquema específico, use o privilégio CREATE TABLE.
CREATE ANY VIEW Sim Sim Concede privilégios para criar uma view em qualquer esquema de banco de dados. Para permitir a criação de views em um esquema específico, use o privilégio CREATE VIEW.

SELECT ANY DICTIONARY

Sim Sim Permita que todos os privilégios funcionem corretamente em tabelas de dicionário.

Exemplo: Permissões concedidas para o usuário comum do Oracle AI Database

Privilégios concedidos para o usuário comum do Oracle AI Database, que é c##ggadmin no seguinte exemplo:

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');

Neste exemplo, o privilégio DBA não é fornecido. Se privilégios estiverem faltando, o DBA deverá conceder os privilégios necessários adicionalmente.

Os privilégios concedidos ao usuário ggadmin do PDB são fornecidos no seguinte exemplo:

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');

Observação: A concessão da atribuição DBA não é obrigatória para todos os usuários. Os privilégios devem ser concedidos de acordo com as ações que o usuário precisa executar no banco de dados. Por exemplo, para conceder privilégios de operação DML para inserir, atualizar e excluir transações para ggadmin, use os privilégios GRANT ANY INSERT/UPDATE/DELETE. Para permitir ainda mais que os usuários trabalhem com tabelas e índices como parte das operações DML, use os privilégios GRANT CREATE/DROP/ALTER ANY TABLE/INDEX.

Exemplo: Conceder privilégios usando o pacote DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE

Este procedimento concede os privilégios necessários a um usuário para ser um administrador do Oracle GoldenGate. O exemplo a seguir concede privilégios explícitos para Extract no banco de dados multitenant da Oracle:

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

Consulte DBMS_GOLDENGATE_AUTH em Oracle AI Database PL/SQL Packages and Types Reference para obter mais informações.

Privilégios para Capturar do Oracle Data Vault

Conceda os privilégios a seguir conectados como usuário SYS no Oracle AI Database. Esses privilégios são definidos para as credenciais do usuário Extract e Replicat:

-

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