Configure a base de dados Oracle de origem para uma migração única

Esta página descreve como configurar a base de dados de origem do Oracle para uma migração única com o serviço de migração de bases de dados. Antes de poder usar o Database Migration Service para extrair dados da sua base de dados Oracle de origem, tem de conceder os privilégios adequados à conta de utilizador que vai ser usada para se ligar à sua base de dados e aceder ao esquema e aos objetos de código.

Por predefinição, o serviço de migração de bases de dados tenta aceder a todas as definições de objetos através do DBA_VIEWS. O acesso ao DBA_VIEWS é concedido com o privilégio SELECT ANY DICTIONARY. Se as vistas da DBA não estiverem acessíveis à conta de utilizador da migração, o serviço de migração de base de dados recorre a ALL_VIEWS. Esta abordagem oferece-lhe o maior grau de flexibilidade no que diz respeito à definição de um modelo de segurança que melhor se adequa aos seus requisitos.

Para ver os passos de configuração exatos, consulte a secção da sua base de dados de origem:

Configure uma base de dados Amazon RDS for Oracle

Para configurar as bases de dados de origem do Amazon RDS para uma migração única, conceda à conta de utilizador que o Database Migration Service vai usar os privilégios adequados

Para cada comando, substitua USER_NAME pelo nome da conta de utilizador que usa para a migração. A execução destes comandos concede privilégios para ler a partir de V$DATABASE, o que é necessário para a validação.

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

Configure uma base de dados Oracle

Para configurar as bases de dados de origem do Oracle para uma migração única, conceda à conta de utilizador que o serviço de migração de bases de dados vai usar os privilégios adequados

Para cada comando, substitua USER_NAME pelo nome da conta de utilizador que usa para a migração. A execução destes comandos concede privilégios para ler a partir de V$DATABASE, o que é necessário para a validação.

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;

Configure uma base de dados conectável (PDB) do Oracle

O Serviço de migração de bases de dados suporta a arquitetura multi-inquilino da Oracle, em que uma única base de dados de contentores (CDB) contém uma ou mais bases de dados conectáveis (PDBs). Cada base de dados conectável é uma base de dados autónoma com um ID e um nome exclusivos, e pode ser gerida de forma independente.

Para configurar uma base de dados conectável da Oracle de modo a poder usá-la com o serviço de migração de bases de dados, siga estes passos:

  1. Crie um utilizador comum.

    Um utilizador comum tem a mesma identidade no contentor CDB$ROOT e nas bases de dados conectáveis. Um utilizador comum pode estabelecer ligação e realizar operações na raiz e em qualquer base de dados conectável na qual tenha privilégios. O nome de utilizador comum tem de começar com C## ou c##.

  2. Conceda os privilégios adequados ao utilizador comum que vai ser usado para estabelecer ligação à sua base de dados. São necessárias autorizações diferentes ao nível do contentor CDB$ROOT e da base de dados conectável.

    Para cada comando, substitua USER_NAME pelo nome da conta de utilizador que usa para a migração. A execução destes comandos concede privilégios para ler a partir de V$DATABASE, o que é necessário para a validação.

    • Ligue-se ao contentor do CDB$ROOT e execute os seguintes 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;
    • Associe à base de dados conectável e execute os seguintes 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;