db link洩露密碼的處理

rainbowbridg發表於2007-04-29
不過我上次提到的在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部落格 ” ,連結:http://blog.itpub.net/7916042/viewspace-912820/,如需轉載,請註明出處,否則將追究法律責任。

相關文章