Criar Links de Banco de Dados de um Autonomous AI Database para um Oracle Database Publicamente Acessível com uma Wallet (mTLS)
Você pode criar links de banco de dados de um Autonomous AI Database para um banco de dados Oracle de destino que esteja em um ponto final público.
Para usar links de banco de dados com o Autonomous AI Database, o banco de dados de destino deve ser configurado para usar TCP/IP com autenticação SSL (TCPS). Os Autonomous AI Databases usam TCP/IP com autenticação SSL (TCPS) por padrão, para que você não precise fazer nenhuma configuração adicional no seu banco de dados de destino para vincular a outro Autonomous AI Database. Outros bancos de dados Oracle devem ser configurados para usar TCP/IP com autenticação SSL (TCPS). Consulte Configuring Secure Sockets Layer Authentication no Oracle Database 19c Security Guide ou no Oracle Database 26ai Security Guide para obter mais informações.
Para criar links de banco de dados para um destino público, o Oracle Database de destino deve estar acessível. Alguns bancos de dados podem limitar o acesso (por exemplo, usando Listas de Controle de Acesso). Certifique-se de ativar o 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 as ACLs (Listas de Controle de Acesso), poderá localizar o endereço IP de saída do Autonomous AI Database de origem e permitir que esse endereço IP se conecte ao seu banco de dados de destino.
Consulte Como Criar um Link de Banco de Dados do Autonomous AI Database para uma Instância do Database Cloud Service para obter mais informações.
Para criar links de banco de dados para um banco de dados Oracle de destino com uma wallet (mTLS):
-
Copie sua wallet do banco de dados de destino,
cwallet.sso, contendo os certificados do banco de dados de destino para o Object Store.Observe o seguinte para o arquivo de wallet:
-
O arquivo da wallet, juntamente com o ID de usuário e a senha do Banco de Dados, fornecem 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 da wallet. O arquivo da wallet no serviço Object Storage deve ser nomeado
cwallet.sso.
-
-
Crie credenciais para acessar o Object Store em que você armazena o arquivo da wallet
cwallet.sso. Consulte Procedimento CREATE_CREDENTIAL para obter informações sobre os parâmetros de nome de usuário e senha para diferentes serviços de armazenamento de objetos. -
Crie um diretório no Autonomous AI 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 AI Database para obter informações sobre a criação de diretórios.
-
Use
DBMS_CLOUD.GET_OBJECTpara 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*é o namespace do Oracle Cloud Infrastructure Object Storage ebucketnameé o nome do bucket. Consulte Noções Básicas de Namespaces do serviço Object Storage para obter mais informações.Observação: O
credential_nameusado nesta etapa são as credenciais do Object Store. Na próxima etapa, você cria as credenciais para acessar o banco de dados de destino. -
Na instância do Autonomous AI Database, crie credenciais para acessar o banco de dados de destino. As credenciais
usernameepasswordespecificadas comDBMS_CLOUD.CREATE_CREDENTIALsão as credenciais do banco de dados de destino que você usa para criar o link do banco de dados.Observação: é necessário fornecer o parâmetro
credential_name.Por exemplo:
BEGIN DBMS_CLOUD.CREATE_CREDENTIAL( credential_name => 'DB_LINK_CRED', username => 'NICK', password => '*password*'); END; /Os caracteres no parâmetro
usernamedevem ter todas as letras maiúsculas.Esta operação armazena as credenciais no banco de dados em um formato criptografado. Você pode usar qualquer nome para o nome da credencial.
-
Crie o link do 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.atpc.example.oraclecloud.com', ssl_server_cert_dn => 'CN=atpc.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 precisam de privilégios para executar
DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.Se o arquivo da wallet no diretório especificado com
directory_namenão forcwallet.sso, o procedimento reportará um erro como:ORA-28759: failure to open file. -
Use o vínculo 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 senha nova.
Após essa operação, os links de banco de dados existentes que usam essa credencial continuam funcionando sem precisar eliminar e recriar os links de banco de dados.
Para obter informações adicionais, consulte:
Observações do Link de Banco de Dados com um Oracle Database de Destino
Fornece observações para criar links de banco de dados para um banco de dados Oracle de destino (quando o destino não é um Autonomous AI Database)
Observações para links de banco de dados para outros bancos de dados Oracle:
-
Apenas um arquivo de wallet é válido por diretório para uso com links de banco de dados. Você só pode fazer upload de um
cwallet.ssopor vez para o diretório escolhido para arquivos da wallet (por exemplo, DBLINK_WALLET_DIR). Isso significa que, com umcwallet.ssono DBLINK_WALLET_DIR, você só pode criar links de banco de dados para os bancos de dados para os quais a wallet nesse diretório é válida. Para usar vários arquivoscwallet.ssocom links de banco de dados, você precisa criar diretórios adicionais e colocar cadacwallet.ssoem um diretório diferente. Quando você criar links de banco de dados comDBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK, especifique o diretório que contém a wallet com o parâmetrodirectory_name.Consulte Criar Diretório no Autonomous AI Database para obter informações sobre como criar diretórios.
-
As versões suportadas do banco de dados Oracle para links de banco de dados com outro Oracle Database são: 19c, 12.2.0 e 12.1.0.
Observação: Para obter informações completas sobre as versões suportadas, consulte Client Server Interoperability Support Matrix for Different Oracle Versions (Doc ID 207303.1)
-
O Autonomous AI Database define o parâmetro
SEC_CASE_SENSITIVE_LOGONcomotruee esse valor não pode ser alterado. Se o seu banco de dados de destino não for um Autonomous AI Database, defina o parâmetroSEC_CASE_SENSITIVE_LOGONcomotrueno banco de dados de destino. Se oSEC_CASE_SENSITIVE_LOGONfor definido comofalseno banco de dados de destino, o erroORA-28040: No matching authentication protocolserá gerado. -
Para listar os links do banco de dados, use a view
ALL_DB_LINKS. Consulte ALL_DB_LINKS no Oracle Database 19c Database Reference ou no Oracle Database 26ai Database Reference para obter mais informações. -
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.
-
Quando a instância do Autonomous AI Database está em um ponto final privado, há duas opções para especificar o banco de dados de destino: use o parâmetro
hostnameou o parâmetrorac_hostnames:-
Para um destino em um ponto final privado, o
DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINKsuporta a especificação de um único nome de host com o parâmetrohostname. Em um ponto final privado, não há suporte para o uso de um endereço IP, IP SCAN ou nome de host SCAN (quando o destino está em um ponto final público, oCREATE_DATABASE_LINKsuporta o uso de um endereço IP, um IP SCAN ou um nome de host SCAN). -
Quando o destino for um banco de dados Oracle RAC, use o parâmetro
rac_hostnamespara especificar um ou mais nomes de host comDBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK. Isso permite que você aproveite os recursos de alta disponibilidade do Oracle RAC. O uso de um endereço IP, um IP SCAN ou um nome de host SCAN no valorrac_hostnamesnão é suportado.Quando você especifica uma lista de nomes de host no parâmetro
rac_hostnames,CREATE_DATABASE_LINKusa todos os nomes de host especificados como endereços na string de conexão. Se um dos hosts especificados não estiver disponível no banco de dados do Oracle RAC de destino, o Autonomous Database tentará estabelecer conexão automaticamente usando outro nome de host na lista. -
DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINKnão suporta um valorlocalhostpara o parâmetrohostnameou no parâmetrorac_hostnames.
-