Oracle中使用同义词

简介:

一、背景
有两个sid:Asid,Bsid,在Asid下有两个用户Auser1,Auser2,在Bsid下有一个用户Buser1。其中Auser2和Buser1建立了dblink。现希望通过登录Buser1访问Auser1上的三张表table1,table2,table3信息和函数function1。

 

二、步骤
①登录Auser1对Auser2授权(若需要删除则加上delete)
grant insert,select,update on table1 to Auser2;
grant insert,select,update on table2 to Auser2;
grant insert,select,update on table3 to Auser2;
grant execute on function1 to Auser2;

②登录Auser2建立同义词
create synonym table1 for Auser1.table1;
create synonym table2 for Auser1.table1;
create synonym table3 for Auser1.table1;
create synonym function1 for Auser1.function1;

③登录Buser1查找db_link名(例如查出来的db_link名为mydblink1)
select username,db_link from user_db_links

④建立Buser1的同义词
create synonym table1 for Auser2.table1@mydblink1;
create synonym table2 for Auser2.table2@mydblink1;
create synonym table3 for Auser2.table3@mydblink1;
create synonym function1 for Auser2.function1@mydblink1;

⑤测试
此时登录Buser1通过select * from table1就可以访问table1了。


三、注意点

也可以建立procedure的同义词,但是这样执行的过程中不允许commit。如果要提交的话请在如JDBC中commit()。


四、一些资料
同义词介绍:http://blog.csdn.net/woshixuye/article/details/10209239

目录
相关文章
|
11月前
|
存储 SQL Oracle
Oracle索引
Oracle索引
82 0
|
Oracle 关系型数据库
oracle学习86-oracle之单行函数1
oracle学习86-oracle之单行函数1
67 0
oracle学习86-oracle之单行函数1
|
Oracle 关系型数据库
oracle学习85-oracle之单行函数2
oracle学习85-oracle之单行函数2
63 0
oracle学习85-oracle之单行函数2
|
SQL Oracle 关系型数据库
创建Oracle DBLink及同义词方法
有时业务经常需要跨库执行SQL语句,就需要创建两个数据库之间的链接对象或通过同义词来实现。
502 0
|
Oracle 关系型数据库 Java
|
Oracle 关系型数据库
|
Oracle 关系型数据库
|
SQL 关系型数据库 数据库
|
SQL Oracle 关系型数据库
|
SQL 移动开发 Oracle

推荐镜像

更多