Criar links de banco de dados do Autonomous Database para um Autonomous Database em um ponto final privado

Você pode criar links de banco de dados de um Autonomous Database para um Autonomous Database de destino que esteja em um ponto final privado.

Tópicos

Pré-requisitos para Links de Banco de Dados do Autonomous Database para um Autonomous Database de Destino em um Ponto Final Privado

Lista os pré-requisitos para criar links de banco de dados para um Autonomous Database de destino que esteja em um ponto final privado.

Para criar um link de banco de dados para um Autonomous Database de destino em um ponto final privado:

  • O banco de dados de destino deve estar acessível pela VCN do Oracle Cloud Infrastructure do banco de dados de origem. Por exemplo, você pode conectar-se ao banco de dados de destino quando:

    • O banco de dados de destino está em um ponto final privado.

    • O banco de dados de origem e de destino estão na mesma VCN do Oracle Cloud Infrastructure.

    • O banco de dados de origem e o banco de dados de destino estão em diferentes VCNs do Oracle Cloud Infrastructure pareadas.

    • O banco de dados de destino está conectado à VCN do Oracle Cloud Infrastructure do banco de dados de origem usando FastConnect ou VPN.

  • Para um destino em um ponto final privado, o DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK suporta a especificação de um único nome de host com o parâmetro hostname. Em um ponto final privado, o uso de um endereço IP, IP do SCAN ou nome de host do SCAN não é suportado (quando o destino está em um ponto final público, CREATE_DATABASE_LINK suporta o uso de um endereço IP, IP do SCAN ou nome de host do SCAN).

  • DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK não suporta um valor de localhost para o parâmetro hostname.

  • As seguintes regras de entrada e saída devem ser definidas para o ponto final privado:

    • Defina uma regra de saída na lista de segurança de sub-rede ou no grupo de segurança de rede do banco de dados de origem de forma que o tráfego por TCP seja permitido para o endereço IP e o número da porta do banco de dados de destino.

    • Defina uma regra de entrada na lista de segurança de sub-rede ou no grupo de segurança de rede do banco de dados de destino de forma que o tráfego por TCP seja permitido do endereço IP do banco de dados de origem para a porta de destino.

    Consulte Configurar o acesso à rede com pontos finais privados para obter informações sobre como configurar pontos finais privados com regras de entrada e saída.

Observação

Quando a instância do Autonomous Database estiver configurada com um ponto final privado, defina a propriedade de banco de dados ROUTE_OUTBOUND_CONNECTIONS como 'PRIVATE_ENDPOINT' para especificar que todos os links de banco de dados de saída estejam sujeitos às regras de saída da VCN do ponto final privado da instância do Autonomous Database. Consulte Segurança Avançada para Conexões de Saída com Pontos Finais Privados para obter mais informações.

Criar Links de Banco de Dados para um Autonomous Database de Destino em um Ponto Final Privado sem uma Wallet (TLS)

Você pode criar links de banco de dados de um Autonomous Database para um Autonomous Database de destino que esteja em um ponto final privado e estabeleça conexão sem uma wallet (TLS).

Para criar um link de banco de dados para um Autonomous Database de destino em um ponto final privado sem uma wallet:

  1. Se você ainda não fez isso, ative as conexões TLS na instância do Autonomous Database.
  2. Crie credenciais para acessar a instância do Autonomous Database de destino. As credenciais username e password especificadas com DBMS_CLOUD.CREATE_CREDENTIAL são as credenciais do banco de dados de destino usado no link de banco de dados (em que o banco de dados de destino é acessado por meio da VCN).

    Por exemplo:

    BEGIN
         DBMS_CLOUD.CREATE_CREDENTIAL(
             credential_name => 'PRIVATE_ENDPOINT_CRED',
             username => 'NICK',
             password => 'password'
             );
    END;
    /

    Todos os caracteres do parâmetro username devem estar maiúsculos.

    Observação

    Você pode usar uma credencial secreta do vault para a credencial do banco de dados de destino em um link de banco de dados. Consulte Usar Credenciais de Segredo do Vault para obter mais informações.

    Essa operação armazena as credenciais no banco de dados em um formato criptografado. Você pode usar qualquer nome para a credencial.

  3. Crie o link de banco de dados para o banco de dados de destino usando DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.

    Por exemplo:

    BEGIN
         DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
             db_link_name => 'PRIVATE_ENDPOINT_LINK', 
             hostname => 'exampleHostname',
             port => '1521',
             service_name => 'example_high.adb.oraclecloud.com',
             credential_name => 'PRIVATE_ENDPOINT_CRED',
             directory_name => NULL,
             private_target => TRUE);
    END;
    /

    Para um destino em um ponto final privado, o DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK suporta a especificação de um único nome de host com o parâmetro hostname. Em um ponto final privado, o uso de um endereço IP, IP do SCAN ou nome de host do SCAN não é suportado (quando o destino está em um ponto final público, CREATE_DATABASE_LINK suporta o uso de um endereço IP, IP do SCAN ou nome de host do SCAN).

    Usuários diferentes de ADMIN exigem privilégios para executar DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.

    Conforme mostrado no exemplo, para criar um link de banco de dados com DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK para um banco de dados de destino em um ponto final privado sem uma wallet, todos os seguintes itens são obrigatórios:

    • O parâmetro directory_name deve ser NULL.

    • O parâmetro ssl_server_cert_dn pode ser omitido ou, se incluído, especifique um valor NULL.

    • O parâmetro private_target deve ser TRUE.

      Observação

      Se você definir ROUTE_OUTBOUND_CONNECTIONS como PRIVATE_ENDPOINT, não será necessário definir o parâmetro private_target como TRUE nessa API. Consulte Segurança Avançada para Conexões de Saída com Pontos Finais Privados para obter mais informações.
  4. Use o link de banco de dados criado para acessar dados no banco de dados de destino.

    Por exemplo:

    SELECT * FROM employees@PRIVATE_ENDPOINT_LINK;
                  
Observação

Para as credenciais criadas na Etapa 1, as credenciais do Oracle Database, se a senha do usuário de destino for alterada, você poderá atualizar a credencial que contém as credenciais do usuário de destino da seguinte forma:
BEGIN
     DBMS_CLOUD.UPDATE_CREDENTIAL (
         credential_name => 'DB_LINK_CRED',
         attribute => 'PASSWORD',
         value => 'password');
END;
/

Em que password é a nova senha.

Após essa operação, os links de banco de dados existentes que usam essa credencial continuam funcionando sem que seja necessário eliminar e recriar os links de banco de dados.

Consulte Procedimento CREATE_DATABASE_LINK para obter informações adicionais.

Criar Links de Banco de Dados para um Autonomous Database de Destino em um Ponto Final Privado com uma Wallet (mTLS)

Você pode criar links de banco de dados de um Autonomous Database para um Autonomous Database de destino que esteja em um ponto final privado (mTLS).

Para criar um link de banco de dados para um Autonomous Database de destino em um ponto final privado, com uma wallet:

  1. Copie a wallet do banco de dados de destino, cwallet.sso, que contém os certificados do banco de dados de destino para o Armazenamento de Objetos.
    Observação

    O arquivo da wallet, juntamente com o ID de usuário e a senha do Banco de Dados, fornecem acesso aos dados no banco de dados Oracle de destino. Armazene os arquivos da wallet em um local seguro. Só compartilhe os arquivos da wallet com usuários autorizados.
  2. Crie credenciais para acessar seu Armazenamento de Objetos no qual você armazena o cwallet.sso. Consulte CREATE_CREDENTIAL Procedimento para obter informações sobre os parâmetros de nome de usuário e senha para diferentes serviços de armazenamento de objetos.
  3. Crie um diretório no Autonomous Database para o arquivo de wallet cwallet.sso.

    Por exemplo:

    CREATE DIRECTORY wallet_dir AS 'directory_path_of_your_choice';
                  

    Consulte Criar Diretório no Autonomous Database para obter informações sobre a criação de diretórios.

  4. Use DBMS_CLOUD.GET_OBJECT para fazer upload da wallet do banco de dados de destino para o diretório criado na etapa anterior, WALLET_DIR.

    Por exemplo:

    BEGIN 
        DBMS_CLOUD.GET_OBJECT(
            credential_name => 'DEF_CRED_NAME',
            object_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/cwallet.sso',
            directory_name => 'WALLET_DIR'); 
    END;
    /

    Neste exemplo, namespace-string corresponde ao namespace do armazenamento de objetos do Oracle Cloud Infrastructure e bucketname corresponde ao nome do bucket. Consulte Noções Básicas de Namespaces do serviço Object Storage para obter mais informações.

    Observação

    O credential_name que você usa nesta etapa são as credenciais do Armazenamento de Objetos. Na próxima etapa, você criará as credenciais para acessar o banco de dados de destino.
  5. No Autonomous Database, crie credenciais para acessar o banco de dados de destino. As credenciais username e password especificadas com DBMS_CLOUD.CREATE_CREDENTIAL são as credenciais do banco de dados de destino usado no link de banco de dados (em que o banco de dados de destino é acessado por meio da VCN).
    Observação

    É obrigatório fornecer o parâmetro credential_name.

    Por exemplo:

    BEGIN
        DBMS_CLOUD.CREATE_CREDENTIAL(
           credential_name => 'DB_LINK_CRED',
           username => 'NICK',
           password => 'password');
    END;
    /

    Todos os caracteres do parâmetro username devem estar maiúsculos.

    Observação

    Você pode usar uma credencial secreta do vault para a credencial do banco de dados de destino em um link de banco de dados. Consulte Usar Credenciais de Segredo do Vault para obter mais informações.

    Essa operação armazena as credenciais no banco de dados em um formato criptografado. Você pode usar qualquer nome para a credencial.

  6. Crie o link de banco de dados para o banco de dados de destino usando DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.

    Por exemplo:

    BEGIN
        DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
            db_link_name => 'PEDBLINK1', 
            hostname => 'example1.adb.ap-osaka-1.oraclecloud.com',
            port => '1522',
            service_name => 'example_high.adb.oraclecloud.com',
            ssl_server_cert_dn => 'ssl_server_cert_dn',
            credential_name => 'DB_LINK_CRED',
            directory_name => 'WALLET_DIR',
            private_target => TRUE);
    END;
    /
    Observação

    Se você definir ROUTE_OUTBOUND_CONNECTIONS como PRIVATE_ENDPOINT, não será necessário definir o parâmetro private_target como TRUE nessa API. Consulte Segurança Avançada para Conexões de Saída com Pontos Finais Privados para obter mais informações.

    Para um destino em um ponto final privado, o DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK suporta a especificação de um único nome de host com o parâmetro hostname. Em um ponto final privado, o uso de um endereço IP, IP do SCAN ou nome de host do SCAN não é suportado (quando o destino está em um ponto final público, CREATE_DATABASE_LINK suporta o uso de um endereço IP, IP do SCAN ou nome de host do SCAN).

    DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK não suporta um valor de localhost para o parâmetro hostname.

    Usuários diferentes de ADMIN exigem privilégios para executar DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.

  7. Use o link de banco de dados criado para acessar dados no banco de dados de destino.

    Por exemplo:

    SELECT * FROM employees@PEDBLINK1;
                  
Observação

Para as credenciais criadas na Etapa 5, as credenciais do Oracle Database, se a senha do usuário de destino for alterada, você poderá atualizar a credencial que contém as credenciais do usuário de destino da seguinte forma:
BEGIN
    DBMS_CLOUD.UPDATE_CREDENTIAL (
        credential_name => 'DB_LINK_CRED',
        attribute => 'PASSWORD',
        value => 'password');
END;
/

Em que password é a nova senha.

Após essa operação, os links de banco de dados existentes que usam essa credencial continuam funcionando sem que seja necessário eliminar e recriar os links de banco de dados.

Consulte Procedimento CREATE_DATABASE_LINK para obter informações adicionais.