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 |
CONNECT |
Sim | Sim | O usuário comum 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 |
|
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 |
|
|
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: |
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. |
|
|
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*;
-
Conceda ao Replicat os privilégios em
DBMS_MACADM.ADD_AUTH_TO_REALMse estiver aplicando a um realm.Estabeleça conexão como proprietário do Database Vault e execute os seguintes scripts:
BEGIN DVSYS.DBMS_MACADM.ADD_AUTH_TO_REALM( REALM_NAME => 'Oracle Default Component Protection Realm',GRANTEE => '*userID*',AUTH_OPTIONS => 1) ; END ; / EXECUTE_DBMS_MACADM.AUTHORIZE_DDL('SYS', 'SYSTEM'); -
Para replicação de DDL, conceda o seguinte como proprietário do Database Vault:
EXECUTE DBMS_MACADM.AUTHORIZE_DDL ('*userID*', '*SCHEMA FOR DDL*');