创建、删除、查询视图,只给用户查询权限
=======================其他=============================
-- 删除用户
drop user order_select_zzzxyy cascade;
--创建用户 并且 给用户分配表空间
create user order_select_zzzxyy identified by order_select_zzzxyy default tablespace orderweb --默认分配到这个表空间里;
--授权(给用户连接权)
grant connect to order_select_zzzxyy ;
===============创建视图,只给某个用户查询权限=======================
-- 创建视图 注:当前登录的用户 是 orderweb_zzzzyy(有最高权限)
CREATE OR REPLACE VIEW view_orderweb_order(pf_order_id,
order_date,
status,
take_password,
visit_no,
platform_deptid,
visit_level,
timerange,
scheduledate,
start_time,
end_time,
medi_cardid,
papers_num,
create_time,
front_provider_id)
AS select t.pf_order_id,
t.order_date,
t.status,
t.take_password,
t.visit_no,
t.platform_deptid,
t.visit_level,
decode(t.timerange,'上午','a','下午','p'),
t.scheduledate,
SUBSTR(t.scheduledate, -17, 8) start_time,
SUBSTR(t.scheduledate, -8, 8) end_time,
t.medi_cardid,
t.papers_num,
t.create_time,
t.front_provider_id
from orderweb_order t order by pf_order_id desc;
注:当前登录的用户 是 orderweb_zzzzyy(有最高权限)
--授权用户:把视图的查询权限授权给 order_select_zzzxyy 用户
grant select on orderweb_zzzzyy.view_orderweb_order to order_select_zzzxyy;
| | |
查询权限 视图名 把权限分配给谁
-- 查询视图
SELECT * FROM view_orderweb_order
-- 删除视图
DROP VIEW orderweb_zzzzyy.orderweb_order_vw
-- 一条完整SQL
select t.pf_order_id,
t.order_date,
t.status,
t.take_password,
t.visit_no,
t.platform_deptid,
t.visit_level,
decode(t.timerange,'上午','a','下午','p'),
t.scheduledate,
SUBSTR(t.scheduledate, -17, 8) start_time,
SUBSTR(t.scheduledate, -8, 8) end_time,
t.medi_cardid,
t.papers_num,
t.create_time,
t.front_provider_id
from orderweb_order t order by pf_order_id desc;
=====================视图相关资料=============================
- 视图创建语法:
语法结构:创建视图
CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view_name
[(alias[, alias]...)]
AS subquery
[WITH CHECK OPTION [CONSTRAINT constraint]]
[WITH READ ONLY]
语法解析:
OR REPLACE :若所创建的试图已经存在,则替换旧视图;
FORCE:不管基表是否存在ORACLE都会自动创建该视图(即使基表不存在,也可以创建该视图,但是该视图不能正常使用,当基表创建成功后,视图才能正常使用);
NOFORCE :如果基表不存在,无法创建视图,该项是默认选项(只有基表都存在ORACLE才会创建该视图)。
alias:为视图产生的列定义的别名;
subquery :一条完整的SELECT语句,可以在该语句中定义别名;
WITH CHECK OPTION :插入或修改的数据行必须满足视图定义的约束;
WITH READ ONLY :默认可以通过视图对基表执行增删改操作,但是有很多在基表上的限制(比如:基表中某列不能为空,但是该列没有出现在视图中,则不能通过视图执行insert操作),WITH READ ONLY说明视图是只读视图,不能通过该视图进行增删改操作。现实开发中,基本上不通过视图对表中的数据进行增删改操作。
1. 创建视图例子
2. 视图查询
3. 删除视图
4. 给用户授权某视图的查询功能
注:截图来自于网络;