2

我目前正在尝试验证 Oracle db_link 实际上指向正确的服务器。当我查询 db_links 时,我得到了引用 TNSNames 的 DB_link 的定义:

select * from all_db_links;

给我以下结果:

所有者:user1
DB_LINK:DBL_xxx.world
用户名:User2
主机:tnsEntry1
创建时间:2012 年 5 月 3 日

当我测试 DB_link 时,一切正常:

select * from dual@"DBL_xxx.world";

假人:X

但是,由于我无权访问服务器,我无法确保 tns 条目 tnsEntry1 指向正确的服务器。

在本地,我可以运行:

select sys_context ( 'USERENV', 'DB_NAME' ) db_name,
 sys_context ( 'USERENV', 'SESSION_USER' ) user_name,
 sys_context ( 'USERENV', 'SERVER_HOST' ) db_host
 from dual;

我尝试远程运行相同的命令:

select sys_context ( 'USERENV', 'DB_NAME' ) db_name,
 sys_context ( 'USERENV', 'SESSION_USER' ) user_name,
 sys_context ( 'USERENV', 'SERVER_HOST' ) db_host
 from dual@DBL_xxx.world;

但它只返回本地数据。

有没有办法查看远程信息?或者从 sql 查询中检查 tnsnames?

4

1 回答 1

4

这将为您提供数据库链接另一端的数据库的数据库名称:

select property_value 
from database_properties@<database_link> 
where property_name='GLOBAL_DB_NAME'
于 2012-05-08T11:52:24.117 回答