数据库 同义词 的理解与使用

       同义词是数据库模式对象的一个别名,经常用于简化对象访问和提高对象访问的安全性。在使用同义词时,Oracle数据库将它翻译成对应模式对象的名字。与视图类似,同义词并不占用实际存储空间,只有在数据字典中保存了同义词的定义。在Oracle数据库中的大部分数据库对象,如表、视图、同义词、序列、存储过程等,数据库管理员都可以根据实际情况为他们定义同义词。隐藏对象名称和所有者。

   私有同义词

私有Oracle同义词由创建它的用户所有;创建的用户需要具有CREATE SYNONYM权限。

 

【语法】

CREATE SYNONYM <synonym_name> for <tablename/viewname...>

 

【示例】

--管理员 授权用户zx创建同义词的权限

grant create synonym to zx;

 

--创建私有同义词

create synonym syn_emp for emp;

create synonym syn_v_emp for v_emp;--为视图v_emp创建私有同义词(别名)

 

--使用私有同义词

select empno,ename from syn_emp;

update syn_emp set ename='zx5' where empno='1234';

 

--删除同义词

drop synonym syn_emp;

 

 

​​​​​​​    公有同义词

公有Oracle同义词由一个特殊的用户组Public所拥有。顾名思义,数据库中所有的用户都可以使用公有同义词。公有同义词往往用来标示一些比较普通的数据库对象,这些对象常需要引用。公有同义词一般由管理员用户创建及删除,普通用户需要创建及删除需要create public synonym和drop public synonym权限。

【语法】

CREATE PUBLIC SYNONYM <synonym_name> for <tablename/viewname...>

 

--登陆sys管理员用户,授权用户zx创建、删除(公有的删除权限需要特别给定)公有同义词权限

grant create public synonym,drop public synonym to zx;

--revoke create public synonym,drop public synonym from zx;

 

--登陆zx用户创建公有同义词 conn zx/zx;

create public synonym syn_public_emp for emp;

 

--使用公有同义词

select * from syn_public_emp; 

 

-- 登录system管理员 conn system/orcl; 创建zx2并授权

--create user zx2 identified by zx2 default tablespace zx_ts;

--grant connect,resource to zx2;

 

--为其它用户zx2授权使用公有同义词(需要给予使用表的权限)

grant select,update on zx.emp to zx2;

--revoke select,update on zx.emp from zx2;

 

--登陆zx2用户下使用公有同义词syn_public_emp

select * from syn_public_emp; 

update syn_public_emp set  ename='it5' where empno=5555; 

 

--删除同义词

--登陆zx,删除公有同义词

drop public synonym syn_public_emp;

 

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值