Configuración de conexiones a Oracle AI Database

Obtenga información sobre los privilegios de usuario necesarios en la base de datos para conectarse a Oracle GoldenGate y las instrucciones de configuración para configurar conexiones para Oracle AI Database a Oracle GoldenGate.

Preparación de Usuarios y Privilegios de Base de Datos para Oracle

Obtenga información sobre la creación de usuarios de base de datos y la asignación de privilegios para Oracle GoldenGate para Oracle.

Nota: tanto Extract como Replicat necesitan que la base de datos esté en modo de lectura/escritura. Una extracción no se puede capturar desde una base de datos en espera de Data Guard o una base de datos en espera de Active Data Guard que esté abierta para actividades de solo lectura, incluso con la redirección DML activada.

Otorgar privilegios de usuario para Oracle AI Database 26ai y versiones superiores

Oracle AI Database 26ai proporciona roles de usuario para otorgar privilegios basados en roles a un usuario de base de datos con sentencias SQL.

Oracle AI Database 26ai utiliza un enfoque basado en roles para otorgar los privilegios necesarios para la replicación. Los roles son una sustitución de los procedimientos GRANT_ADMIN_PRIVILEGE del paquete DBMS_GOLDENGATE_AUTH.

Por ejemplo, para crear un usuario de administración de Oracle GoldenGate, debe otorgar el rol OGG_* adecuado al usuario al crear el usuario. Si sigue utilizando procedimientos GRANT_ADMIN_PRIVILEGE del paquete DBMS_GOLDENGATE_AUTH en Oracle AI Database 26ai, no se otorgan privilegios. En su lugar, se emite un mensaje de advertencia que alerta de que la llamada al procedimiento está desactivada.

Estos son los roles de usuario introducidos en Oracle GoldenGate 26ai:

OGG_CAPTURE

OGG_CAPTURE tiene los privilegios necesarios para utilizar y gestionar procesos de Extract.

Para capturar DML y DDL con Extract, un usuario necesita los siguientes permisos:

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

Si el proceso de extracción está registrado en el contenedor raíz, se debe realizar este paso adicional:

ALTER USER ggadmin SET CONTAINER_DATA = all CONTAINER = current;

OGG_APPLY

Rol con los privilegios necesarios para utilizar Oracle GoldenGate Replicat.

Para utilizar procesos de Replicat, un usuario necesita este rol, así como los permisos para ejecutar DML y DDL en el destino. Por ejemplo, si un proceso de Replicat está destinado a realizar operaciones DML en la tabla EMPLOYEES desde el esquema HR:

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

Si el usuario de Replicat está destinado a aplicar operaciones DDL como CREATE TABLE, DROP TABLE y ALTER TABLE, debe recibir los privilegios del sistema necesarios para ejecutar dichas sentencias:

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

OGG_APPLY_PROCREP

Rol con los privilegios necesarios para ejecutar paquetes soportados para la replicación de procedimiento con Oracle GoldenGate. Solo incluye los permisos de ejecución; por lo tanto, este rol se debe utilizar junto con el rol OGG_APPLY para permitir al usuario ejecutar el proceso de Replicat y ejecutar los procedimientos en el destino.

Por ejemplo, si un Replicat aplicará ejecuciones de procedimientos. El proceso de concesión debe ser el siguiente:

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

Otorgamiento de Privilegios de Usuario para Oracle Database 21c y Lower

Los privilegios de usuario necesarios para conectarse a Oracle AI Database desde Oracle GoldenGate dependen del tipo de usuario.

Los privilegios se deben otorgar en función de las acciones que el usuario debe realizar como usuario administrador GoldenGate en las bases de datos de origen y destino. Por ejemplo, para otorgar privilegios de operación DML para insertar, actualizar y suprimir transacciones a un usuario, utilice los privilegios GRANT ANY INSERT/UPDATE/DELETE y para permitir que los usuarios trabajen con tablas e índices como parte de las operaciones DML, utilice los privilegios GRANT CREATE/DROP/ALTER ANY TABLE/INDEX.

Si el usuario administrador GoldenGate tiene el rol de DBA, no se necesitan privilegios de objeto adicionales. Sin embargo, puede haber restricciones de seguridad que otorguen el rol de DBA al usuario de administración GoldenGate. El rol de DBA no es necesario para Oracle GoldenGate.

Si se están replicando muchos objetos, puede utilizar el privilegio ANY para operaciones DML y DDL. Esto simplifica la provisión de privilegios a los usuarios administradores de GoldenGate, ya que solo necesita otorgar algunos privilegios según las operaciones de la base de datos.

En la siguiente tabla, se describen algunos de los privilegios esenciales para el usuario administrador de GoldenGate para Oracle AI Database. Para obtener una explicación, la tabla utiliza c##ggadmin como ejemplo de un usuario común para una base de datos de contenedor multi-inquilino y ggadmin como usuario de base de datos conectable (PDB). PDBEAST y PDBWEST se utilizan como ejemplos de nombres de PDB.

En la siguiente tabla se describen los privilegios esenciales para el usuario administrador GoldenGate para utilizar Oracle GoldenGate con bases de datos de Oracle de origen y destino:

Privilegio Extracción Replicar todos los modos Finalidad
RESOURCE Sí Sí

Necesario para crear objetos

En Oracle Database 12cR1 y posteriores, en lugar de RESOURCE, otorgue el siguiente privilegio:

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

El usuario común SYSTEM se conecta al contenedor raíz. Este privilegio es esencial cuando el rol de DBA no está asignado al usuario.

Consulte un ejemplo de Permisos otorgados a un usuario común de la base de datos de Oracle mutitenant.

CREATE PROCEDURE Sí Sí Es necesaria para agregar tablas de latidos.
CREATE SESSION Sí Sí Necesario para conectarse a la base de datos
CREATE VIEW Sí Sí

Necesario para agregar la vista de tabla de latidos.

Si desea ser específico de cada objeto, también puede proporcionar los privilegios para cada objeto individualmente. Puede considerar la creación de un rol de base de datos específico para mantener dichos privilegios.

ALTER SYSTEM Sí Sí Realice cambios administrativos, como activar el registro.
ALTER USER Sí Sí Necesario para la arquitectura multiinquilino y GGADMIN debe ser un esquema de administrador de Oracle GoldenGate válido.
EXEC DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE ('REPUSER', CONTAINER=>'PDBEAST'); Sí Sí

  • Necesario para extracción y replicación de bases de datos de IA autónomas (ATP y ADW). Las extracciones del contenedor raíz (CDB$ROOT)) pueden necesitar un valor de ALL o una PDB específica (ejemplo: pdbeast).

  • Otorgue privilegios para los usuarios de Extract y Replicat. Consulte Ejemplo: otorgamiento de privilegios mediante el paquete DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE

  • Otorgar privilegios para capturar desde la base de datos privada virtual

  • Otorga privilegios para capturar datos ocultos

Otorgue los privilegios DV_GOLDENGATE_ADMIN y DV_GOLDENGATE_REDO_ACCESS conectados como usuario SYS al usuario Extract y al usuario Replicat. Sí Sí Captura desde Data Vault. Consulte Privilegios para la captura desde Oracle Data Vault.
Otorgue privilegios de Replicat en DBMS_MACADM.ADD_AUTH_TO_REALM si se aplica a un dominio. Sí Sí Necesario por el Extract de carga inicial para capturar datos de la tabla de destino, Capture desde Data Vault. Consulte Privilegios para la captura desde Oracle Data Vault.
INSERT, UPDATE, DELETE en las tablas de destino N/D Sí Aplicar DML replicado a objetos de destino. Consulte Detalles del soporte para objetos y operaciones en Oracle DML

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

N/D Sí Otorgue estos privilegios al usuario de Replicat, en lugar de otorgar INSERT, UPDATE, DELETE a cada tabla, si replica cada tabla.

Si se realiza la replicación de DDL, otorgue lo siguiente como propietario de Database Vault:

EXECUTE DBMS_MACADM.AUTHORIZE_DDL('GGADMIN USER', 'SCHEMA FOR DDL');
No No Captura desde Data Vault. Consulte Privilegios para la captura desde Oracle Data Vault.
Privilegios DDL en objetos de destino (si se utiliza soporte DDL) N/D Sí Emitir DDL replicado en objetos de destino. Consulte Detalles del soporte para objetos y operaciones en Oracle DDL.
GRANT [CREATE\|ALTER\|DROP] ANY [TABLE\|INDEX\|VIEW\|PROCEDURE] to GGADMIN; Sí Sí Otorga privilegios para la replicación de DDL para tablas.
CREATE ANY TABLE Sí Sí Otorga privilegios para crear tablas en cualquier esquema. Para permitir la creación de tablas solo en un esquema específico, utilice el privilegio CREATE TABLE.
CREATE ANY VIEW Sí Sí Otorga privilegios para crear la vista en cualquier esquema de base de datos. Para permitir la creación de vistas en un esquema específico, utilice el privilegio CREATE VIEW.

SELECT ANY DICTIONARY

Sí Sí Permitir que todos los privilegios funcionen correctamente en las tablas del diccionario.

Ejemplo: permisos otorgados para el usuario común de Oracle AI Database

Privilegios otorgados para el usuario común de Oracle AI Database, que es c##ggadmin en el siguiente ejemplo:

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

En este ejemplo, no se proporciona el privilegio DBA. Si faltan privilegios, el DBA también debe otorgar los privilegios necesarios.

Los privilegios otorgados para el usuario de PDB ggadmin se proporcionan en el siguiente ejemplo:

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

Nota: La asignación del rol de DBA no es obligatoria para todos los usuarios. Se deben otorgar privilegios en función de las acciones que el usuario necesite realizar en la base de datos. Por ejemplo, para otorgar privilegios de operación DML para insertar, actualizar y suprimir transacciones a ggadmin, utilice los privilegios GRANT ANY INSERT/UPDATE/DELETE. Para permitir a los usuarios trabajar con tablas e índices como parte de las operaciones DML, utilice los privilegios GRANT CREATE/DROP/ALTER ANY TABLE/INDEX.

Ejemplo: otorgamiento de privilegios mediante el paquete DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE

Este procedimiento otorga los privilegios necesarios para que un usuario sea administrador de Oracle GoldenGate. El siguiente ejemplo otorga privilegios explícitos para Extract en la base de datos multiinquilino de 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 en Referencia de tipos y paquetes PL/SQL de Oracle AI Database para obtener más información.

Privilegios para Capturar desde Oracle Data Vault

Otorgue los siguientes privilegios conectados como usuario SYS en Oracle AI Database. Estos privilegios se definen para las credenciales de usuario de Extract y Replicat:

-

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