天萃荷净

开发DBA反映创建好的Oracle DBLINK由于应用需要,要将其变为public dblink。由于忘记dblink的目标段的密码,使用修改基表(link$)让非public dblink变为public

创建了一个非public的dblink,现在该数据库的其他用户需要去使用该dblink,在正常情况下无访问权限,需要重新建一个dblink,或者将原dblink修改为public。但是由于忘记了原dblink的目标段的密码,使得创建或者修改dblink的步骤无法进行下去。这里通过修改基表(link$),解决该问题。

1.创建dblink

SQL> show user;

USER is "SYS"

SQL> create database link "xff_dblink"

2 connect to TEST

3 identified by "test"

4 using '11.1.1.1:1521/mcrm';

Database link created.

SQL> select * from dba_db_links where db_link like 'XFF_DBLINK%';

OWNER DB_LINK USERN HOST CREATED

----- ------------------------------------------- ----- ------------------ --------

SYS XFF_DBLINK.REGRESS.RDBMS.DEV.US.ORACLE.COM TEST 11.1.1.1:1521/mcrm 29-MAR-12

SQL> select sysdate from dual@xff_dblink;

SYSDATE

---------

29-MAR-12

SQL> CONN TEST/TEST

Connected.

SQL> SELECT SYSDATE FROM DUAL@XFF_DBLINK;

SELECT SYSDATE FROM DUAL@XFF_DBLINK

*

ERROR at line 1:

ORA-02019: connection description for remote database not found

--该dblink不是public的,所以test用户无权访问

2.dblink变为public类型

SQL> CONN / AS SYSDBA

Connected.

SQL> set long 1000

SQL> select text from dba_views where view_name='DBA_DB_LINKS';

TEXT

-------------------------------------------------------------------

select u.name, l.name, l.userid, l.host, l.ctime

from sys.link$ l, sys.user$ u

where l.owner# = u.user#

--查询出dblink相关的基表有link$和user$

SQL> desc sys.link$

Name Null? Type

----------------------------- -------- --------------------

OWNER# NOT NULL NUMBER

NAME NOT NULL VARCHAR2(128)

CTIME NOT NULL DATE

HOST VARCHAR2(2000)

USERID VARCHAR2(30)

PASSWORD VARCHAR2(30)

FLAG NUMBER

AUTHUSR VARCHAR2(30)

AUTHPWD VARCHAR2(30)

PASSWORDX RAW(128)

AUTHPWDX RAW(128)

SQL> select owner# from sys.link$ where name like 'XFF_DBLINK%';

OWNER#

----------

0

--XFF_DBLINK对应的用户标识记录在link$.owner#中

SQL> SELECT USER#,NAME FROM USER$ WHERE name in ('SYS','PUBLIC');

USER# NAME

---------- ------------------------------

1 PUBLIC

0 SYS

--现link$.owner#值为0,表示该dblink所属用户为SYS,现在让该dblink变为public

--现需要让该dblink变为public,需要做的是修改link$.owner#的值为1

SQL> UPDATE LINK$ SET OWNER#=1 WHERE name like 'XFF_DBLINK%';

1 row updated.

SQL> COMMIT;

Commit complete.

--需要刷新shared_pool

SQL> ALTER SYSTEM FLUSH SHARED_POOL;

System altered.

--查看dblink所属者,已经修改为public

SQL> select owner from dba_db_links where db_link like 'XFF_DBLINK%';

OWNER

----------

PUBLIC

--测试dblink是否成功

SQL> CONN TEST/TEST

Connected.

SQL> SELECT SYSDATE FROM DUAL@XFF_DBLINK;

SYSDATE

---------

29-MAR-12

--------------------------------------ORACLE-DBA----------------------------------------

最权威、专业的Oracle案例资源汇总之【学习笔记】通过修改基表(link$)让非public dblink变为public

用dblink能修改_【学习笔记】通过修改基表(link$)让非public dblink变为public相关推荐

  1. db4o_8.0对象数据库官方文档翻译_学习笔记三

    紧接上篇:db4o_8.0对象数据库官方文档翻译_学习笔记二 3. Object Manager Enterprise Overview(OME视图)即OME插件的使用 If you did not  ...

  2. 友盟统计+渠道包_学习笔记

    友盟统计+渠道包_学习笔记 资料: 官网:https://developer.umeng.com/docs/66632/detail/66889#h3-u5E38u89C1u95EEu9898 视频资 ...

  3. 图论01.最短路专题_学习笔记+模板

    图论01.最短路专题_学习笔记+模板 一.定义与性质 ● 需要的前导知识点 路径 最短路 有向图中的最短路.无向图中的最短路 单源最短路.每对结点之间的最短路 ● 最短路的性质 对于边权为正的图,任意 ...

  4. DHCP服务_学习笔记

    DHCP服务_学习笔记 DHCP(Dynamic Host Configuration Protocol):动态主机配置协议 Lease:租约    续租时间需要是租期时间的一半 UDP协议: Ser ...

  5. 韩顺平php可爱屋源码_韩顺平_php从入门到精通_视频教程_第20讲_仿sohu主页面布局_可爱屋首页面_学习笔记_源代码图解_PPT文档整理...

    韩顺平_php从入门到精通_视频教程_第20讲_仿sohu首页面布局_可爱屋首页面_学习笔记_源代码图解_PPT文档整理 对sohu页面的分析 注释很重要 经验:写一点,测试一点,这是一个很好的方法. ...

  6. c++ qt工作量和移动端相比_学习笔记 --- QT

    0.前序 别问,问就是选修... 那毕竟3dMax动画那边结课了,我怎么就不能再发一篇笔记(极其嚣张) QT其实会去好好学的,虽然最近为了选修结课又得恶补一波 不过以后给策划造编辑器是要用的,这篇笔记 ...

  7. SSRS:使用SQL2008教程学习Reporting Services之数据库AdventureWorks2008问题_学习笔记1

    首先声明我是菜鸟,刚开始学习Reporting Services.在学习教程中的一点笔记. 从SQL2005开始,微软就提供了强大的Reporting Services功能,的确好用,对于经常需要出复 ...

  8. Git学习笔记:修改

    前言 在补习python的时候主要参考的是廖雪峰的教程Python教程,在学习完后准备完成期末作业时,遇到了一个技术难题,需要初步掌握git,因此开始了git的学习. 本教程参考廖雪峰的Git教程 G ...

  9. python aop编程_学习笔记: AOP面向切面编程和C#多种实现

    AOP:面向切面编程   编程思想 OOP:一切皆对象,对象交互组成功能,功能叠加组成模块,模块叠加组成系统 类--砖头     系统--房子 类--细胞     系统--人 面向对象是非常适合做大型 ...

  10. oracle拆分分区语法详解大全_学习笔记:Oracle分区表 添加 删除 合并 删除 交换 拆分等分区表的操作案例...

    天萃荷净 Oracle分区表管理,记录关于Oracle分区表的管理案例:创建.删除.合并.拆分.交换.更改分区表的操作方法 1.添加创建分区表 1.1)增加分区(add partition) 语法是: ...

最新文章

  1. Windows Phone开发(16):样式和控件模板
  2. Arrays.binarySearch 面试的坑
  3. [原创]浅谈对华为34岁以上员工“退休”
  4. Flex DataGrid可编辑对象实现Enter跳转
  5. 强化学习(四)用蒙特卡罗法(MC)求解
  6. 将R非时间序列的data.frame转变为时序格式
  7. linux 备份文件
  8. sgu 175 Encoding
  9. leetcode 279 四平方定理
  10. python接口 同花顺_利用python探索股票市场数据指南
  11. 【拨云见日】企业上云时代,多样化的公有云服务你了解多少?
  12. 2017.9.22 松鼠的聚会 失败总结
  13. java 封装dll_java调用C#封装的DLL文件
  14. 没有编辑器时,使用echo更换源
  15. NOIP2018 复赛提高组一等奖获奖名单
  16. Bezier曲线及其de casteljau算法 matlab实现
  17. Fomo玩法加持的PixelMaster为什么火了?
  18. Carsim安装教程-破解carsim2016.01和Carsim2018
  19. java fx scen,java基础:10.2 Java FX之显示图片
  20. 居家办公,无需公网IP远程桌面内网电脑【免费内网穿透】

热门文章

  1. [COCI2015]COCI
  2. GhostBSD 10.1-ALPHA1 发布
  3. PHP的SQL注入攻击的技术实现以及预防措施
  4. bootrom启动流程【转】
  5. 详解Makefile 函数的语法与使用
  6. 解决MySQL命令行无法连接问题错误ERROR1045(28000)
  7. TortoiseGit入门(图文教程) Git,Github,puttygen,SSH
  8. mysql字符串相加函数concat()
  9. 自动管理Windows2003好用的“远程桌面”
  10. Java 增强型的for循环 for each