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 |
CONNECT |
Sí | Sí | El usuario común 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í |
|
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 |
|
|
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: |
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. |
|
|
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*;
-
Otorgue Replicat los privilegios en
DBMS_MACADM.ADD_AUTH_TO_REALMsi se aplica a un dominio.Conéctese como propietario de Database Vault y ejecute los siguientes 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 la replicación DDL, otorgue lo siguiente como propietario de Database Vault:
EXECUTE DBMS_MACADM.AUTHORIZE_DDL ('*userID*', '*SCHEMA FOR DDL*');