由于视图的数据与表数据互相关联,所以切记谨慎操作
1. 建立视图
使用下面的sql语句来完成视图的创建
create or replace view 视图名
as
select 视图需要的字段 from 视图对应的表
[with read only]
with read only :添加之后视图变只读 不加可做修改
2. 视图权限相关
由于实际应用中不可能给用户所有表和视图的所有操作权限,所以需要设置特定的用户权限(需要当前使用账号拥有较高的权限等级)
2.1 当前登录用户配置
首先使用sql新建用户
create user 用户名 identified by 密码
然后使用
grant 权限 on 视图名 to 被赋予权限的用户
权限名:权限分为很多种
可以输入all 代表全部权限
insert 代表插入权限
delete 代表删除权限
update 代表修改权限
select 代表查询权限
还要使用
grant create session to 用户名
来允许用户访问数据库
2.2 用户设置
由于我们已经赋予了查询权限所以可以登录后使用sql进行查询
select * from 视图创建者用户名.视图名
3. 优化
我们刚才已经完成了赋予用户查询单张视图的过程,但是出于安全和用户体验的考虑,我们可以继续优化查询过程
可以达到让用户直接查询视图名,而不是视图创建者用户名.视图名
这时候我们可以使用oracle自带的同义词来解决问题
首先需要赋予用户创建同义词的权限
grant create synonym to 用户名
然后登录用户创建同义词 指向之前的视图创建者用户名.视图名
create synonym 同义词名 for 之前的视图创建者用户名.视图名