ITPub博客

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

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

原创 Oracle 作者:lmxx2020 时间:2025-02-06 17:23:39 0 删除 编辑

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;


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/22967847/viewspace-3071205/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2024-01-09

  • 博文量
    106
  • 访问量
    90381