oracle数据库对象---同义词(synonym)

oracle数据库对象—同义词简析

同义词是现有对象的一个别名,分为私有同义词和公用同义词,如一个表的表名过长或访问其他用户的表需要加上用户名作为前缀,可以用别名来解决。
part_1:查看scott用户是否具有创建同义词的权限

--scott用户输入如下语句,查询自己的权限
select * from session_privs where privilege like '%SYNONYM%';

oracle数据库对象---同义词(synonym)_第1张图片
查询结果为空,说明scott用户无权创建同义词;

part_2:通过sys用户,为scott授予创建同义词的权限:

--sys用户输入授权指令
grant create any synonym to scott;

part_3:查看授权是否成功:

--scott用户输入如下语句,查询自己的权限
select * from session_privs where privilege like '%SYNONYM%';

oracle数据库对象---同义词(synonym)_第2张图片
scott用户已经具有创建任何同义词的权限.

part_4:现在scott用户可以为salgrade表创建一个别名:sg

create synonym sg for salgrade;

part_5:测试别名创建是否生效;

select * from sg;

oracle数据库对象---同义词(synonym)_第3张图片

part_6:通过sys,创建一个新的用户mike并为其赋予连接和查询scott.emp表的权限

--sys用户下依次输入下列指令
create user mike identified by 3713;--创建用户mike

grant connect to mike;--授权连接

grant select on scott.emp to mike;--授权查表

part_7:登录mike用户,并输入查表指令测试是否授权成功

select * from scott.emp;

oracle数据库对象---同义词(synonym)_第4张图片

part_8:由于mike要写scott.emp表名,这样就比较冗长,所以下面通过scott用户创建公共同义词emp,这样mike就可以直接输入emp而不用带上scott.前缀了;

--step_1
--sys用户下输入下面指令,为scott授权创建公共同义词
grant create public synonym to scott;
--step_2:scott查询是否授权成功
select * from session_privs where privilege like '%SYNONYM%';

oracle数据库对象---同义词(synonym)_第5张图片

--step_3:
--scott登录的情况下输入创建公共同义词语句
create public synonym emp for scott.emp;

part_9:现在mike就可以直接查询同义词emp而不用再写scott.emp了

--切换到mike用户,输入查询指令
select * from emp;

oracle数据库对象---同义词(synonym)_第6张图片

20170111-10:10

你可能感兴趣的:(#DATABASE#)