全部博文(101)
分类: Oracle
2011-04-19 18:36:19
一.定义介绍
这个你要明白dblink是怎么使用的.
dblink是你用对方数据库的某个用户登录,然后使用这个用户访问表.
比如自己数据库是A,现用用户scott,对方数据库B,下有用户jane和john.
你需要访问john用户的emp表.但是对方给了你jane的用户名和密码 ,你只能建立一个到对方jane用户的dblink.这时候你怎么访问john用户的emp表呢.这时候需要B数据库管理员把john.emp的select权限赋予jane用户,那你就可以通过dblink访问了.
反过来你的问题应该也明白怎么办了吧.
如果对方要访问你的表,那么他必须知道你所在数据库的一个用户和密码,如果就是你的表所属的用户,那么不用授权,如果是另一个用户c,那么你只需要把权限赋予用户c就可以了。
二.报错解决方法
以下是一点儿经验:
A : 你要连接的机器
B: 创建db link的机器
1, using后面的串必须是B的连接串;因为你是要在B上,创建A的db link的;--开发者比较容易犯这个错,因为总会连接很多的其他开发者的机器
2, 密码用""引起来,这个原因很奇怪,没有见过; --ora-01017,ora-02063, 用户名和密码错误;
3, A和B的机器的GLOBAL_NAMES需要一样,数据库的默认设置;--ora-12154,这个错误网上的解答就比较多了;
但是现在是A和B的不一样,所以我把A和B上执行了: ALTER SYSTEM SET GLOBAL_NAMES=FALSE;