Configura tu base de datos de Oracle de origen para una migración única

En esta página, se describe cómo configurar tu base de datos de Oracle de origen para una migración única con Database Migration Service. Antes de poder usar Database Migration Service para extraer datos de tu base de datos de Oracle de origen, debes otorgar los privilegios adecuados a la cuenta de usuario que se usará para conectarse a tu base de datos y acceder a los objetos de esquema y código.

De forma predeterminada, Database Migration Service intenta acceder a todas las definiciones de tus objetos a través de DBA_VIEWS. El acceso a DBA_VIEWS se otorga con el privilegio SELECT ANY DICTIONARY. Si la cuenta de usuario de migración no puede acceder a las vistas de DBA, Database Migration Service recurre a ALL_VIEWS. Este enfoque te brinda el mayor grado de flexibilidad para definir un modelo de seguridad que se adapte mejor a tus requisitos.

Para conocer los pasos de configuración exactos, consulta la sección correspondiente a tu base de datos de origen:

Configura una base de datos de Amazon RDS para Oracle

Para configurar tus bases de datos de origen de Amazon RDS para una migración única, otorga los privilegios adecuados a la cuenta de usuario que usará Database Migration Service.

Para cada comando, reemplaza USER_NAME por el nombre de la cuenta de usuario que usas para la migración. La ejecución de estos comandos otorga privilegios para leer desde V$DATABASE, lo que se requiere para la validación.

GRANT CONNECT TO USER_NAME;
GRANT CREATE SESSION TO USER_NAME;
GRANT SELECT ANY TABLE TO USER_NAME;
GRANT SELECT ANY DICTIONARY TO USER_NAME;
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$DATABASE','USER_NAME','SELECT');

Configura una base de datos de Oracle

Para configurar tus bases de datos de Oracle de origen para una migración única, otorga los privilegios adecuados a la cuenta de usuario que usará Database Migration Service.

Para cada comando, reemplaza USER_NAME por el nombre de la cuenta de usuario que usas para la migración. La ejecución de estos comandos otorga privilegios para leer desde V$DATABASE, lo que se requiere para la validación.

GRANT CONNECT TO USER_NAME;
GRANT CREATE SESSION TO USER_NAME;
GRANT SELECT ANY TABLE TO USER_NAME;
GRANT SELECT ANY DICTIONARY TO USER_NAME;
GRANT SELECT ON SYS.V_$DATABASE TO USER_NAME;

Configura una base de datos conectable (PDB) de Oracle

Database Migration Service admite la arquitectura multiusuario de Oracle, en la que una sola base de datos de contenedor (CDB) contiene una o más bases de datos conectables (PDB). Cada base de datos conectable es una base de datos independiente con un ID y un nombre únicos, y se puede administrar de forma independiente.

Para configurar una base de datos conectable de Oracle de modo que puedas usarla con Database Migration Service, sigue estos pasos:

  1. Crea un usuario común.

    Un usuario común tiene la misma identidad en el contenedor de CDB$ROOT y en las bases de datos conectables. Un usuario común puede conectarse y realizar operaciones dentro de la raíz y en cualquier base de datos conectable en la que tenga privilegios. El nombre de usuario común debe comenzar con C## o c##.

  2. Otorga los privilegios adecuados al usuario común que se usará para conectarse a tu base de datos. Se requieren diferentes permisos a nivel del contenedor CDB$ROOT y de la base de datos conectable.

    Para cada comando, reemplaza USER_NAME por el nombre de la cuenta de usuario que usas para la migración. La ejecución de estos comandos otorga privilegios para leer desde V$DATABASE, lo que se requiere para la validación.

    • Conéctate al contenedor CDB$ROOT y ejecuta los siguientes comandos:
      GRANT CREATE SESSION TO USER_NAME;
      GRANT SET CONTAINER TO USER_NAME;
      GRANT SELECT ON SYS.V_$DATABASE TO USER_NAME;
      GRANT EXECUTE_CATALOG_ROLE TO USER_NAME;
    • Conéctate a la base de datos conectable y ejecuta los siguientes comandos:
      GRANT CREATE SESSION TO USER_NAME;
      GRANT SET CONTAINER TO USER_NAME;
      GRANT SELECT ANY TABLE TO USER_NAME;
      GRANT SELECT ANY DICTIONARY TO USER_NAME;
      GRANT SELECT ON SYS.V_$DATABASE TO USER_NAME;