设置权限的时候 有用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; --是否能查到数据 --取决于是否有权限查询