Oracle 数据库的同义词+视图
我希望有个如你一般的人
我希望有个如你一般的人,如山间清爽的风,如古城温暖的光,从清晨到夜晚,从山野到书房,只要最后是你,就好。I L???????
今天讲解的内容是Oracle 数据库的同义词和视图命令操作
同义词:
相当于表的别名:
system创建同义词:
create synonym ep for scott.emp;
创建同义词表后,我们授予scott的查看权限
grant select on ep to scott;
连接scott查看 :
select * from system.ep;
视图:虚拟的表
代码重用
隐藏具体的表
不改变表结构的基础上进行数据重组
sql+window查看dba视图:
select * from dba_synonyms;
system创建视图
create view view_emp
as
select * from scott.emp
修改ep表,一开始失败
update ep set ename='KING_boss' where empno=7839;
在sys里授予system修改权限:
grant update on scott.emp to system;
现在system 就可以修改视图了:
update view_emp set ename='KING_boss' where empno=7839;
创建只读视图
create or replace view view_emp
as
select * from scott.emp
with read only
当我们对视图进行增删改时,会报错。
我们可以链表查询:
select ename,job,dname from scott.emp e join scott.dept d on e.deptno=d.deptno;
创建视图view_emp_dept;
create view view_emp
as
select ename,job,dname from scott.emp e join scott.dept d on e.deptno=d.deptno
这里,假如我们system自身查看此视图到是可以,但是如果system给scott查看视图的权限 会报一个没有权限的错
grant select on system.view_emp_dept to scott;
这里初步解决方案:登录sys 用户来授权,然后登录scott就可以查看该视图了,可能是system还差一个对于表dept的权限吧。
大家可以尝试用system用户授权一下哦。