同义词

同义词

同义词是给对象起的别名。同义词作用是方便好记,不直接显示出对象的名字,起到保护对象的作用。下面记下同义词的用法:

-------私有同义词

Scott用户创建同义词,报权限问题,由于一般用户默认的resource里不含创同义词的权限,数据库会认为dba想刻意的隐藏一个对象,所以没权限。
在这里插入图片描述

赋予权限后,创建私有同义词sy1成功。
在这里插入图片描述

查看私有同义词sy1和查看表emp一样,描述也一样。同时注意select *语句后面可以是一张表,也可能是这个表的同义词。
在这里插入图片描述

字典dba_objects可以查询对象类型,由此可以查询对象是表还是同义词:sy1为同义词。
Select OWNER,OBJECT_NAME,OBJECT_TYPE from dba_objects where OBJECT_NAME=’SY1’;
在这里插入图片描述

同义词创建时参考了谁可以看字典dba_synonyms,如下scott的同义词sy1创建时参考了scott的emp表。
Select OWNER,SYNONYM_NAME,TABLE_OWNER,TABLE_NAME from dba_synonyms where synonym_name=’SY1’;
在这里插入图片描述

如果再创表sy1是无法创建的,因为同一用户下是不允许有同名的对象的。
在这里插入图片描述

注:SCOTT创建的私有同义词只能SCOTT来用,要想别的用户来用除非SCOTT授权。

------共有同义词

同义词分两类,私有和共有。但本质都是给对象起别名。
语法:
在这里插入图片描述

创建同样需要管理员授权,
在这里插入图片描述

Scott创建共有同义词zs
在这里插入图片描述

Scott同时创建一张表也叫zs,是可以的。
在这里插入图片描述

注:如果是共有同义词,是允许创建同名对象的。同一用户下,是不可能有同名的对象的,是因为同义词没有创在scott的用户下,否则这个表创不成功的。

用管理员查询owner,zs创建给了共有同义词用户
在这里插入图片描述

注:只要一个用户具备共有同义词权限,他创建的同义词都放到public用户下,这个public用户是默认创好的,但是放心这个用户不可以登录,不用怀疑同义词没有了,因为这个用户是不可以登陆的。这是zs表,虽然同名,但是一个是public,一个是scott。
在这里插入图片描述

如果select * from zs; 这句话到底读谁呢,查的是表,同义词参考emp表。但是如果把表zs删掉,再查只能查同义词了,也就是自己有先读自己的,没有再读共有同义词。
在这里插入图片描述

用u1用户查看scott的共有同义词zs,需要赋权再查看,不用加”scott.”,

用u1用户查看scott的私有同义词sy1,同样需要赋权底层表emp再查看,必须加”scott.”,
在这里插入图片描述
在这里插入图片描述
删共有同义词:后面+名字,删私不要public。
在这里插入图片描述

用户看自己的同义词也支持,这是u1用户的
在这里插入图片描述

两个字典对比:user_synonyms没有owner,所以user_synonyms只能查自己的,dba查谁都可以。
在这里插入图片描述

假如想让u1用户也能查dba_synonyms这个字典,可以授权给u1。
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值