不过我上次提到的在10g的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也看不到pa[@more@]
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/7916042/viewspace-912820/
,如需转载,请注明出处,否则将追究法律责任。