Oracle之初见视图


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

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 之前的视图创建者用户名.视图名
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值