user_db_links 表内的访问问题 

[复制链接]
查看11 | 回复9 | 2010-3-1 11:08:33 | 显示全部楼层 |阅读模式
请问如何将 每个用户下的 user_db_links 表内的password字段的内容加密,或是不让用户进行查询?
因为通过 数据库链路,就可以知道其他数据库用户的密码!
回复

使用道具 举报

千问 | 2010-3-1 11:08:33 | 显示全部楼层
最初由 fresh_man 发布
[B]请问如何将 每个用户下的 user_db_links 表内的password字段的内容加密,或是不让用户进行查询?
因为通过 数据库链路,就可以知道其他数据库用户的密码! [/B]

不要在当前用户下创建db_link , 需要访问的远程通过view,synonym来创建授权..
回复

使用道具 举报

千问 | 2010-3-1 11:08:33 | 显示全部楼层
还有别的办法吗?
回复

使用道具 举报

千问 | 2010-3-1 11:08:33 | 显示全部楼层
学习
回复

使用道具 举报

千问 | 2010-3-1 11:08:33 | 显示全部楼层
同意二楼,没见过其它方法
回复

使用道具 举报

千问 | 2010-3-1 11:08:33 | 显示全部楼层
哪个版本的数据库? 9ir2 里没有密码这个字段。
回复

使用道具 举报

千问 | 2010-3-1 11:08:33 | 显示全部楼层
再求解决方法!
回复

使用道具 举报

千问 | 2010-3-1 11:08:33 | 显示全部楼层
最初由 fresh_man 发布
[B]请问如何将 每个用户下的 user_db_links 表内的password字段的内容加密,或是不让用户进行查询?
因为通过 数据库链路,就可以知道其他数据库用户的密码! [/B]

这个问题有趣,也是不少DBA担心的一个问题。
起初这个权限出现在select any table上,即如果用户有这个系统权限,他即可查sys.link$,所有dblink的pass都知道了。这个问题直到9.2.0.6 Oracle才修补上。
再就是你说的这个问题,其实你的问题很好解决。你只需把user_db_links这个视图重建一下就可以了。
user_db_links的创建脚本为:
[php]
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')
[/php]
以sys用户登陆,把如上的脚本改成
[php]
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')
[/php]
即把其它的password这一列去掉,放心用吧,我这儿这么做几年了


回复

使用道具 举报

千问 | 2010-3-1 11:08:33 | 显示全部楼层
最初由 ZALBB 发布
[B]哪个版本的数据库? 9ir2 里没有密码这个字段。 [/B]


SQL> select * from v$version;
BANNER
----------------------------------------------------------------
Oracle9i Enterprise Edition Release 9.2.0.6.0 - 64bit Production
PL/SQL Release 9.2.0.6.0 - Production
CORE9.2.0.6.0 Production
TNS for HPUX: Version 9.2.0.6.0 - Production
NLSRTL Version 9.2.0.6.0 - Production
SQL> desc user_db_links;
Name
Null?Type
----------------------------------------- -------- ----------------------------
DB_LINK
NOT NULL VARCHAR2(128)
USERNAME
VARCHAR2(30)
PASSWORD
VARCHAR2(30)
HOST
VARCHAR2(2000)
CREATED
NOT NULL DATE
SQL>
回复

使用道具 举报

千问 | 2010-3-1 11:08:33 | 显示全部楼层
嗯,是我不小心,我只用dba_db_links,这个视图不带password 这个字段。
10201里,user_db_links 的这个字段是空值。看来在102G的时候,oracle 也注意这个问题了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行