十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
要使用department用户创建。
创新互联专注于江津网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供江津营销型网站建设,江津网站制作、江津网页设计、江津网站官网定制、重庆小程序开发服务,打造江津网络公司原创品牌,更为您提供江津网站排名全网营销落地服务。
如果department和employee是同一个库不同表空间。
/** for 用户名.表名 */
create public synonym synonym_name for department.部门表;
如果department和employee不是同一个库。那么还需要加上部门所在库的database link。
/** for 用户名.表名@资源连接 */
create public synonym synonym_name for department.部门表@link_name;
我们需要准备的材料分别是:电脑、oracle。
1、首先打开oracle,如果想要实现表空间的方法,则输入以下代码:
2、如果想要实现用户的方法,则输入以下代码:
3、如果想要实现表的方法,则输入以下代码:
4、如果想要实现索引的方法,则输入以下代码:
5、如果想要实现序列号的方法,则输入以下代码:
6、如果想要实现视图的方法,则输入以下代码:
一般操作是:
1.create or replace synonym a1 FOR a2@testdb;
2.grant connect to someuser
grant dba to someuser
grant resource to someuser
3.grant all on 表 to someuser
这样存储过程就可操作同义词,在存储过程中访问公共同义词,必须直接对用户授权,而不能通过角色授权。
可以通过创建同义词的方法来解决.
同义词,相当于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了。
一、背景
有两个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()。