Criar Links de Banco de Dados do Autonomous Database para um Autonomous Database Acessível Publicamente

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

Consulte Como Criar um Link de Banco de Dados do Autonomous Database para uma Instância do Database Cloud Service para obter mais informações.

Criar Links de Banco de Dados do Autonomous Database para um Autonomous Database Acessível Publicamente sem uma Wallet (TLS)

Você pode criar links de banco de dados de um Autonomous Database para um Autonomous Database acessível publicamente sem uma wallet (TLS).

Para criar links de banco de dados para um destino público, o banco de dados de destino deve estar acessível. Alguns bancos de dados, incluindo Autonomous Databases, podem limitar o acesso (por exemplo, usando Listas de Controle de Acesso). Certifique-se de ativar seu banco de dados de destino para permitir o acesso do banco de dados de origem para que o link do banco de dados funcione. Se você limitar o acesso com Listas de Controle de Acesso (ACLs), poderá encontrar o endereço IP de saída do Autonomous Database de origem e permitir que esse endereço IP se conecte ao seu banco de dados de destino. Quando o banco de dados de destino é outro Autonomous Database, você pode adicionar o endereço IP de saída do banco de dados de origem à ACL do banco de dados de destino.

Consulte Obter Detalhes da Tenancy para obter informações sobre como localizar o endereço IP de saída.

Para criar um link de banco de dados para um Autonomous Database de destino sem uma wallet (TLS):

  1. Se você ainda não fez isso, ative as conexões TLS na instância do Autonomous Database.
  2. Na instância do Autonomous Database na qual você está criando o link de banco de dados, crie credenciais para acessar o 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 (você usa essas credenciais para criar o link de banco de dados).
    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.

  3. Crie um link de banco de dados para a instância do Autonomous Database de destino usando DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.

    Por exemplo:

    BEGIN
        DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
            db_link_name => 'SALESLINK', 
            hostname => 'adb.eu-frankfurt-1.oraclecloud.com', 
            port => '1521',
            service_name => 'example_medium.adb.example.oraclecloud.com',
            credential_name => 'DB_LINK_CRED',
            directory_name => NULL);
    END;
    /

    Para criar um link de banco de dados com DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK para um Autonomous Database de destino em um ponto final público usando uma conexão TCP segura sem uma wallet, 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.

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

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

    Por exemplo:

    SELECT * FROM employees@SALESLINK;
                

Para as credenciais criadas na Etapa 1, as credenciais do banco de dados de destino, 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.

Observação

Você pode criar links para o Big Data Service usando DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK. Consulte Pesquisar Dados HDFS (Hadoop) do Big Data Service no Autonomous Database para obter mais informações.

Para obter informações adicionais, consulte:

Criar Links de Banco de Dados do Autonomous Database para um Autonomous Database Acessível Publicamente com uma Wallet (mTLS)

Você pode criar links de banco de dados de um Autonomous Database para um Autonomous Database acessível publicamente com uma wallet (mTLS).

Para criar links de banco de dados para um destino público, o banco de dados de destino deve estar acessível. Alguns bancos de dados, incluindo Autonomous Databases, podem limitar o acesso (por exemplo, usando Listas de Controle de Acesso). Certifique-se de ativar seu banco de dados de destino para permitir o acesso do banco de dados de origem para que o link do banco de dados funcione. Se você limitar o acesso com Listas de Controle de Acesso (ACLs), poderá encontrar o endereço IP de saída do Autonomous Database de origem e permitir que esse endereço IP se conecte ao seu banco de dados de destino. Por exemplo, se o banco de dados de destino for outro Autonomous Database, você poderá adicionar o endereço IP de saída do banco de dados de origem à ACL do banco de dados de destino.

Consulte Obter Detalhes da Tenancy para obter informações sobre como localizar o endereço IP de saída.

Para criar links de banco de dados para um Autonomous Database de destino com uma wallet (mTLS):

  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.

    Observe o seguinte para o arquivo de wallet:

    • O arquivo da wallet com o ID e a senha do usuário do Banco de Dados fornece acesso aos dados no Oracle Database de destino. Armazene os arquivos da wallet em um local seguro. Só compartilhe os arquivos da wallet com usuários autorizados.

    • Não renomeie o arquivo de wallet. O arquivo da wallet no serviço Object Storage deve ter o nome cwallet.sso.

  2. Crie credenciais para acessar seu Armazenamento de Objetos no qual você armazena o arquivo de wallet 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.

    A criação de uma credencial para acessar o Oracle Cloud Infrastructure Object Store não será necessária se você ativar as credenciais do controlador de recursos. Para obter mais informações, consulte Usar o Controlador de Recursos para Acessar Recursos do Oracle Cloud Infrastructure.

  3. Crie um diretório no Autonomous Database para o arquivo de wallet cwallet.sso.

    Por exemplo:

    CREATE DIRECTORY dblink_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, DBLINK_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 => 'DBLINK_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.

    A criação de uma credencial para acessar o Oracle Cloud Infrastructure Object Store não será necessária se você ativar as credenciais do controlador de recursos. Para obter mais informações, consulte Usar o Controlador de Recursos para Acessar Recursos do Oracle Cloud Infrastructure.

  5. Na instância do Autonomous Database, crie credenciais para acessar o banco de dados de destino. Os parâmetros username e password que você especifica com DBMS_CLOUD.CREATE_CREDENTIAL são as credenciais do banco de dados de destino que você usa para criar o link de banco de dados.
    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 => 'SALESLINK',
            hostname => 'adb.eu-frankfurt-1.oraclecloud.com', 
            port => '1522',
            service_name => 'example_medium.adb.example.oraclecloud.com',
            ssl_server_cert_dn => 'CN=adb.example.oraclecloud.com,OU=Oracle BMCS FRANKFURT,O=Oracle Corporation,L=Redwood City,ST=California,C=US',
            credential_name => 'DB_LINK_CRED',
            directory_name => 'DBLINK_WALLET_DIR');
    END;
    /

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

    Se o arquivo de wallet no diretório especificado com directory_name não for cwallet.sso, o procedimento reportará um erro como: ORA-28759: failure to open file.

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

    Por exemplo:

    SELECT * FROM employees@SALESLINK;
                

Para as credenciais criadas na Etapa 5, as credenciais do banco de dados de destino, 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.

Observação

Você pode criar links para o Big Data Service usando DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK. Consulte Pesquisar Dados HDFS (Hadoop) do Big Data Service no Autonomous Database para obter mais informações.

Para obter informações adicionais, consulte: