天天看点

Oracle之初见视图

    • 1. 建立视图
    • 2. 视图权限相关
      • 2.1 当前登录用户配置
      • 2.2 用户设置
    • 3. 优化

由于视图的数据与表数据互相关联,所以切记谨慎操作

1. 建立视图

使用下面的sql语句来完成视图的创建

create or replace view 视图名

as

select 视图需要的字段 from 视图对应的表

[with read only]

with read only :添加之后视图变只读 不加可做修改

Oracle之初见视图

2. 视图权限相关

由于实际应用中不可能给用户所有表和视图的所有操作权限,所以需要设置特定的用户权限(需要当前使用账号拥有较高的权限等级)

2.1 当前登录用户配置

首先使用sql新建用户

create user 用户名 identified by 密码

然后使用

grant 权限 on 视图名 to 被赋予权限的用户

Oracle之初见视图

权限名:权限分为很多种

可以输入all 代表全部权限

insert 代表插入权限

delete 代表删除权限

update 代表修改权限

select 代表查询权限

还要使用

grant create session to 用户名

来允许用户访问数据库

Oracle之初见视图

2.2 用户设置

由于我们已经赋予了查询权限所以可以登录后使用sql进行查询

select * from 视图创建者用户名.视图名

Oracle之初见视图

3. 优化

我们刚才已经完成了赋予用户查询单张视图的过程,但是出于安全和用户体验的考虑,我们可以继续优化查询过程

可以达到让用户直接查询视图名,而不是视图创建者用户名.视图名

这时候我们可以使用oracle自带的同义词来解决问题

首先需要赋予用户创建同义词的权限

grant create synonym to 用户名

Oracle之初见视图

然后登录用户创建同义词 指向之前的视图创建者用户名.视图名

create synonym 同义词名 for 之前的视图创建者用户名.视图名

Oracle之初见视图