我目前正在尝试验证 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?