设置权限的时候 有用
a)建立一个新的用户mk 密码m123;
connect system/manager;
create user mk identified by m123;
grant connect,resource to mk;
b)登录到用户mk 建立一张表
connect mk/m123;
create table test(
xh number(2) primary key,
cname varchar2(10) not null);
insert into test values (10,'Mike');
commit;
c)希望在scott用户下能看到mk用户中test表的数据???
connect mk/m123
grant select on test to scott; //授权scott能select
connect scott/tiger
select * from mk.test;
create synonym mtest for mk.test; //为表建立的
//可以为任何对象建立同义词
select * from mtest; //相当于select * from mk.test;
同义词 增强数据库的安全性
connect mk/m123
create sequence seq1;
grant select on seq1 to scott;
connect scott/tiger
select mk.seq1.nextval from dual;
为序列建立一个同义词
create synonym seqa for mk.seq1;
select seqa.nextval from dual;
a)某个用户所拥有的同义词都称为私有的同义词,
别的用户是不能使用它的
b)所有用户都能使用的同义词称为公有的同义词public
只能定义在超级用户下
connect system/manager
create public synonym ptest for mk.test;
connect mk/m123
select * from ptest;
//同义词只是个名字,到底能否查到数据取决于是否有权限
取一个别名semp 相当于 scott.emp
简化名字,隐藏表的所有者
增强安全性
connect mk/m123;
create synonym semp for scott.emp;
select * from semp;
--是否能查到数据
--取决于是否有权限查询
(责任编辑:IT) |