十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
要使用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;
同义词可分为两种:1)公有同义词。2)私有同义词。
create public synonym 同义词名称 for 数据库对象名;----公有同义词
create synonym 同义词名称 from 数据库对象;-----私有同义词
我们需要准备的材料分别是:电脑、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()。
一般操作是:
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
这样存储过程就可操作同义词,在存储过程中访问公共同义词,必须直接对用户授权,而不能通过角色授权。