En esta página se describe cómo configurar la base de datos de Oracle de origen para realizar una migración única con Database Migration Service. Antes de poder usar Database Migration Service para extraer datos de tu base de datos Oracle de origen, debes conceder 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 de código.
De forma predeterminada, Database Migration Service intenta acceder a todas las definiciones de objetos a través de
DBA_VIEWS.
El acceso a DBA_VIEWS se concede 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 ofrece la mayor flexibilidad a la hora de definir un modelo de seguridad que se ajuste mejor a tus requisitos.
Para ver los pasos de configuración exactos, consulta la sección correspondiente a tu base de datos de origen:
- Configurar una base de datos de Amazon RDS para Oracle
- Configurar una base de datos de Oracle autogestionada
- Configurar una base de datos conectable de Oracle autogestionada
Configurar una base de datos de Amazon RDS para Oracle
Para configurar las bases de datos de origen de Amazon RDS para una migración única, concede los privilegios adecuados a la cuenta de usuario que utilizará Database Migration Service.
En cada comando, sustituye USER_NAME por el nombre de la cuenta de usuario que utilices para la migración. Al ejecutar estos comandos, se conceden privilegios para leer de V$DATABASE, lo que es necesario 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');
Configurar una base de datos de Oracle
Para configurar las bases de datos de Oracle de origen para una migración única, concede los privilegios adecuados a la cuenta de usuario que utilizará Database Migration Service.
En cada comando, sustituya USER_NAME por el nombre de la cuenta de usuario que utilice para la migración. Al ejecutar estos comandos, se conceden privilegios para leer de V$DATABASE, lo que es necesario 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;
Configurar una base de datos conectable (PDB) de Oracle
Database Migration Service admite la arquitectura multi-tenant de Oracle, en la que una sola base de datos de contenedor (CDB) contiene una o varias bases de datos conectables (PDBs). Cada base de datos conectable es una base de datos independiente con un ID y un nombre únicos, y se puede gestionar de forma independiente.
Para configurar una base de datos conectable de Oracle de forma que puedas usarla con Database Migration Service, sigue estos pasos:
- Crea un
usuario común.
Un usuario común tiene la misma identidad en el contenedor
CDB$ROOTy en las bases de datos conectables. Un usuario común puede conectarse y realizar operaciones en la raíz y en cualquier base de datos conectable en la que tenga privilegios. El nombre de usuario común debe empezar porC##oc##. - Concede los privilegios adecuados al usuario común que se utilizará para conectarse a tu base de datos. Se necesitan permisos diferentes en los niveles de contenedor
CDB$ROOTy de base de datos conectable.En cada comando, sustituya
USER_NAMEpor el nombre de la cuenta de usuario que utilice para la migración. Al ejecutar estos comandos, se conceden privilegios para leer deV$DATABASE, lo que es necesario para la validación.- Conéctate al contenedor
CDB$ROOTy 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;
- Conéctate al contenedor