阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Oracle synonym 同义词创建与删除

130次阅读
没有评论

共计 1373 个字符,预计需要花费 4 分钟才能阅读完成。

Oracle synonym 同义词

1、Oracle synonym 同义词是数据库当前用户通过给另外一个用户的对象创建一个别名,然后可以通过对别名进行查询和操作,等价于直接操作该数据库对象。

2、Oracle 同义词常常是给表、视图、函数、过程、包等制定别名,可以通过 CREATE 命令进行创建、ALTER 命令进行修改、DROP 命令执行删除操作。

3、Oracle synonym 同义词按照访问权限分为私有同义词、公有同义词。

4、私有同义词:私有同义词只能当前用户可以访问,前提:当前用户具有 create synonym 权限。

5、公有同义词:公有同义词只能具有 DBA 用户才能进行创建,所有用户都可以访问的。

语法结构:

CREATE [OR REPLACE] [PUBLIC] SYSNONYM [当前用户.]synonym_nameFOR [其他用户.]object_name;

解析:

1、create [or replace] 命令 create 建表命令一样,当当前用户下同义词对象名已经存在的时候,就会删除原来的同义词,用新的同义词替代上。

2、[public]:创建的是公有同义词,在实际开发过程中比较少用,因为创建就代表着任何用户都可以通过自己用户访问操作该对象,一般我们访问其他用户对象时,需要该用户进行授权给我们。

3、用户名.object_name:oralce 用户对象的权限都是自己用户进行管理的,需要其他用户的某个对象的操作权限,只能通过对象拥有者(用户)进行授权给当前用户。或者当前用户具有系统管理员权限(DBA),即可通过用户名.object_name 操作该对象。

案例分析:

我们在 school 用户下也创建了一张学生信息表(stuinfo),该信息表只存在一个学生信息“张三”。由于我们当前用户 student 用户不具有 school.stuino 的权限,因此要需要该用户授权,然后才能访问。

操作如下:

1、– 未授权之前查询(提示表不存在, 没有操作权限)select * from school.stuinfo;

2、– 登录 jsq_copy 用户进行授权 conn school/123456;  grant all on stuinfo to student;

3、– 授权后再次查询该表数据 conn student/123456;  select * from school.stuinfo;

同义词创建

我们现在为 school.stuinfo 创建同义词 stuinfo_copy,然后通过当前用户 student 直接操作同义词 stuinfo_copy 查询 school.stuinfo 表数据。

代码如下:

create synonym stuinfo_copy for school.stuinfo;

创建同义词之后,即可使用 select *from stuinfo_copy 进行查询,效果等同于 select *from school.stuinfo。

同义词删除

同义词删除只能通过同义词拥有者的用户或者具有 DBA 权限的用户才能删除。

语法结构:

DROP [PUBLIC] SYNONYM [用户.]sysnonym_name;

更多 Oracle 相关信息见 Oracle 专题页面 https://www.linuxidc.com/topicnews.aspx?tid=12

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计1373字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中