【Oracle11g】12_同义词

概念:同义词是现有对象的一个别名。

作用:

  • 简化SQL语句
  • 隐藏对象的名称和所有者
  • 提供对对象的公共访问

公有同义词可被所有的数据库用户访问。
私有同义词只能在其模式内访问,且不能与当前模式的对象同名。

1.创建同义词

-- 建立私有同义词
create synonym syn_emp for scott.emp;

-- 建立共有同义词
create synonym pub_syn_emp for scott.emp;

2.删除同义词

-- 删除私有同义词
drop synonym syn_emp;

-- 删除公有同义词
drop public synonym pub_syn_emp;

3.授权用户scott创建同义词

-- 授权创建私有同义词
grant create synonym to scott;

-- 授权创建公有同义词
grant create public synonym to scott;

新建用户是否能访问已经创建好的同义词呢?
新创建的用户,如果没有访问基表的权限,则无法访问同义词。例如:新建用户test,刚创建好的用户是无法访问scott的dept表的,此时也无法访问dept表的同义词,如果需要访问同义词,则先为表dept授权即可访问。

4.特殊的TAB表

select owner,object_name.object_type from all_objects a where a.object_name='TAB';

select * from all_synonyms u where u.synonym_name='TAB'

任何一个用户都有tab这个表,任何用户都可以通过tab来访问到本用户下的所有表,该表是sys.tab的同义词

posted @ 2020-04-09 23:39  OLIVER_QIN  阅读(275)  评论(0编辑  收藏  举报