ORACLE 查询DBLINK中设定的密码

privatedb link可以查到密码, public dblink 也可以看到密码。只是需要用sys用户登录查询。 

查询dblinkuser 密码sys 登陆

SELECTFROM SYS.link$;

SELECT *

 FROM SYS.link$ l, SYS.user$ u

 WHERE l.owner# IN (SELECT kzsrorol

                      FROM x$kzsro) AND l.owner# = u.user#;

如果是private dblink,就可以用owner登录,查询 user_db_links

Select * from user_db_links;

 

 

 

db link泄露密码的处理

Oracle 10g前,我们可以通过查看user_db_links视图,来查看到本用户下建立的db link
username
password.原因比较简单,可以认为是Oracle的一个安全漏洞。我们看看user_db_links的创建过程就明白了:
create
or replace view user_db_links(db_link, username, password, host, created)

as

select l.name, l.userid, l.password, l.host, l.ctime
from sys
.link$ l
where l
.owner# = userenv('SCHEMAID')
select * from link$
user_db_links视图来源于sys.link$字典表,而在10g前, 对拥有select any table权限的用户来说,是可以访问link$表的。所以要想规避这个漏洞,必须做如下2个操作
1
revoke select any table 或更高级的权限或角色[比如DBA]
2)重建user_db_link视图
create
or replace view user_db_links(db_link, username,host, created)

as

select l.name, l.userid, l.host, l.ctime from sys.link$ l where l.owner# = userenv('SCHEMAID')

Oracle 10g中,Oracle公司也认识到了这个bug,修正了sys.link$的访问权限,除非拥有sysdba权限,否则谁也访问不了。在user_db_links也看不到password

转载于:https://www.cnblogs.com/nclly/archive/2010/03/30/1700525.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值