Quando um DBA realmente precisa disso
Cenário real:
Um DB Link foi criado há anos diretamente com um DESCRIPTION completo no campo HOST, ou seja, a string de conexão foi definida dentro do próprio link, sem uso de tnsnames.ora
.
Tudo funcionava normalmente até que o ambiente de destino mudou de host e serviço.
Agora é necessário recriar o DB Link com o novo destino, mas… ninguém sabe mais a senha do usuário usado originalmente.
E pior: essa senha é usada em outros ambientes, scripts e DB Links. Resetar a senha não é uma opção. Seria necessário atualizar vários sistemas ao mesmo tempo, o que aumenta o risco e a janela de indisponibilidade.
Se o DB Link tivesse sido criado usando um alias do
, bastaria atualizar o arquivo.tnsnames.ora
Mas com o DESCRIPTION
embutido, a única saída é recriar o DB link e para isso, você precisa da senha.
Esse script faz isso por você.
Testado com sucesso nos ambientes Oracle 12c e 19c.
Listando os DB Links existentes
SQL> @db_links.sql
OWNER |DB_LINK |USERNAME |HOST
----------|-------------------------------|---------------|--------------------------------------------------------
CHAVES |PROF_GIRAFALES.DBLINK.VILA |DONA_FLORINDA |(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=scan-prd-vendas)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=BDGIRAFALES.VILA)))
CHAVES |SR_BARRIGA |CLEOTILDE |(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=scan-prd-vendas)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=HUBDB.VILA)))
SQL>
Executando o script adaptado
🔗 github.com/dbasobrinho/g_gold/blob/master/db_link_password_decrypt_RFS.sql
[oracle@SRVPRD-XPT1]$ sqlplus / as sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on Wed Aug 6 13:19:51 2025
Version 19.28.0.0.0
SQL> @db_link_password_decrypt_RFS.sql
======================================================
Informe o OWNER do DB Link que deseja descriptografar:
======================================================
>> CHAVES
======================================================
Informe o nome do DB Link que deseja descriptografar:
======================================================
>> PROF_GIRAFALES.DBLINK.VILA
----------DECRYPTING DB LINK PASSWORD--------------
Initialization_vector : 00099991030103000002000004020000
---------------------------------------------------
Ciphertext : 20551332WSDF56BC5B3FF7F0D3292QWSC53B37523825B069BA41172454F869040
---------------------------------------------------
Encryption key part 1 : F781503899E8F2015A24000FF7F0D3292QWGDFDSSF096B40D531B4367F3ACB71
---------------------------------------------------
Encryption key part 2 : 58D7D8C0ACFCB4DB5A6B52889A8AD326278EDCF781503899E8F2FEFRE7E5FED2623
---------------------------------------------------
Encryption key (Part 1 / Part 2) : AF5688F8351446DB5A6B52889A8AD32FEE53BC8685A6D830BFDAD3744820D7ED52
---------------------------------------------------
Hex (opcional) : 0D4D32435F323032355F4C696674981DE11C1C40485B2D4EE318EDBC3CB14EB3
---------------------------------------------------
!! Senha do DBLink descriptografada !!
====================[ GUINA NAO TINHA DO ]=====================
>> Ch@v3s_3m_Ac@pulc0_2025! <<
====================[ GUINA NAO TINHA DO ]=====================
. . .
PL/SQL procedure successfully completed.
SQL>
.

Como Usar
- Baixe o script adaptado direto do GitHub:
🔗 github.com/dbasobrinho/g_gold/blob/master/db_link_password_decrypt_RFS.sql - Conecte-se como SYSDBA e execute:
SQL> @db_link_password_decrypt_RFS.sql
- Informe o OWNER E nome do DB Link quando solicitado.
- A senha será exibida na tela, formatada e descriptografada.
Créditos e Referências
Script original:
Criado por Hatem Mahmoud
🔗 github.com/hatem-mahmoud/scripts/blob/master/db_link_password_decrypt.sql
Contribuições originais:
• Paul B. – algoritmo de descriptografia original
• Adric Norris – melhorias para uso no SQL*Plus e saída em texto limpo
Post técnico – Felipe Donoso – Oracle DBLink Password Decrypt (12.2 / 18c)
🔗 felipedonoso.cl/2021/11/oracle-dblink-password-decrypt-122-18c.html
Adaptação por DBASobrinho:
Script modificado para:
• Receber apenas o nome do DB Link como entrada
• Buscar e validar os dados automaticamente
• Exibir saída formatada com senha destacada
• Testado com sucesso no Oracle 12.2 e 19c
🔗 Versão adaptada:
github.com/dbasobrinho/g_gold/blob/master/db_link_password_decrypt_RFS.sql
e zas
#20250806 #DBASobrinho #GuinaNãoTinhaDó #BóBó #CaceteDeAgulha #OracleACE