同义词,相当于alias(别名),处理方式如下:
例如:现有user1用户、user2用户;其中user1用户有表tb_1,现在user2用户通过“同义词”tb_2来达到 *** 作user1用户的表tb_1:
create
or
replace
synonym
tb_2
for
user1.tb_1
这样当你在user2中查select
*
from
tb_2时就相当于查select
*
from
user1.tb_1了。
我们需要准备的材料分别是:电脑、oracle。
1、首先打开oracle,如果想要实现表空间的方法,则输入以下代码:
2、如果想要实现用户的方法,则输入以下代码:
3、如果想要实现表的方法,则输入以下代码:
4、如果想要实现索引的方法,则输入以下代码:
5、如果想要实现序列号的方法,则输入以下代码:
6、如果想要实现视图的方法,则输入以下代码:
一、背景
有两个sid:Asid,Bsid,在Asid下有两个用户Auser1,Auser2,在Bsid下有一个用户Buser1。其中Auser2和Buser1建立了dblink。现希望通过登录Buser1访问Auser1上的三张表table1,table2,table3信息和函数function1。
二、步骤
①登录Auser1对Auser2授权(若需要删除则加上)
grant ,select,on table1 to Auser2
grant ,select,on table2 to Auser2
grant ,select,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()。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)