数据库迁移后在密码不知道的情况下重建DBLINK

来源:这里教程网 时间:2026-03-03 21:26:48 作者:

9i和10gR1版本之前,所有 dblink 的密码都是以明文方式在 sys.link$ 中的password字段中存储。可以直接通过查询sys.link$基表进行SQL拼接来完成迁移dblink。  select 'create database link '||NAME || ' connect to '|| USERID ||' identified by '|| password || ' using '''|| HOST ||''';' FROM SYS.LINK$; 10g R2开始,oracle对密码进行加密后存储在sys.link$的PASSWORDX字段(RAW128格式)中 在11.2.0.3版本之前以及11.2.0.3 可以通过以下命令获取dblink的ddl语句(包含密码) SELECT DBMS_METADATA.GET_DDL('DB_LINK',DB_LINK,OWNER) from dba_db_links;   11g和12C场景下不知道dblink密码的情况下重建dblink,先随便设置个密码 create database link DBLINK名称 connect to system identified by oracle using '(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.210.222)(PORT = 1521)))(CONNECT_DATA = (SERVICE_NAME = drmdb)))'; 更新密码 select PASSWORDX from sys.link$ where name='DBLINK名称'; update link$ set PASSWORDX = '查出的密码' where name='DBLINK名称'; commit;

相关推荐