create synonym table1 for user1.table1;
优点自己总结吧.
例如:
在oracle中对用户的管理是使用权限的方式来管理的,也就是说,如果我们想使用数据库,我们就必须得有权限,但是如果是别人将权限授予了我们,我们也是能对数据库进行操作的,但是我们必须要已授权的表的名称前键入该表所有者的名称,所以这就是比较麻烦的,遇到这种情况,我们该怎么办呢?创建个同义词吧!这样我们就可以直接使用同义词来使用表了.
一般是因为存在同义词,但同义词没有相应的对象.
select * from dba_synonyms
where table_owner='TEST'
and synonym_nametable_name;
没有记录.
and
synonym_name in
(select a.synonym_name from dba_synonyms a where a.table_owner='TEST'
minus
select object_name from user_objects)
select * from DRILL_PRESON
drop public synonym DRILL_PRESON
Oracle的同义词(synonyms)从字面上理解就是别名的意思,和视图的功能类似,就是一种映射关系.它可以节省大量的数据库空间,对不同用户的操作同一张表没有多少差别;它扩展了数据库的使用范围,能够在不同的数据库用户之间实现无缝交互;Oracle数据库中提供了同义词管理的功能.同义词是数据库对象的一个别名,经常用于简化对象访问和提高对象访问的安全性.在使用同义词时,Oracle数据库将它翻译成对应方案对象的名字.与视图类似,同义词并不占用实际存储空间,只有在数据字典中保存了同义词的定义
创建同义词
CREATE SYNONYM SYSN_TEST FOR TEST;
查看同义词
SELECT * FROM USER_SYNONYMS
使用同义词
SELECT * FROM SYSN_TEST;
删除同义词
DROP SYNONYM SYSN_TEST;
①.、私有同义词
只能被当前用户访问.
可被所有的数据库用户访问.
创建同义词语法:
create [or replace] [public]
synonym 同义词名称
for [用户名.]对象名;
注释:[]中表示可写、或不写;[or replace]表示如果已经有了你要创建的同义词就取代/替换原有的同义词;[public]表示是否把同义词公有
第一段:背景
第二段:步骤
create synonym table1 for Auser1.table1;
create synonym function1 for Auser1.function1;
③登录Buser1查找db_link名(例如查出来的db_link名为mydblink1)
select username,db_link from user_db_links
④建立Buser1的同义词
⑤测试
此时登录Buser1通过select * from table1就可以访问table1了.
第三段:注意点
也可以建立procedure的+同义词,但是这样执行的过程中不允许commit.如果要提交的话请在如JDBC中commit().
可以试试CREATE SYNONYM TEST FOR
PCKG_RAF_EFAS_INTERFACE.PROC_GET_ACCESS_TOKEN;
如果不行,可以再自己写个存储过程将这个调用存储过程的部分代码包起来,对外边用户使用来说,也是一样的效果.
以上就是土嘎嘎小编为大家整理的oracle同义词怎么用相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!