更新日期:2024年09月11日
视图时由存储在数据库中的查询定义的虚拟表(Virtual Table)。视图所对应的
查询被称为视图定义,它规定了如何从一个或者几个基本表(Base Table)中导出视
图。在数据库中只存放视图的定义,不存放视图对应的数据,数据仍存放在导出视图
的基本表中。修改基本表中的数据,相应视图中的数据也随之改变。视图就像一个窗
口,透过视图可以看到数据库中待观察的数据。
在创建视图时,创建者需要对数据库拥有 Resource 或以上权限。
由于视图是不实际存储数据的虚拟表,
因此对视图的更新最终要转换为对基本表的
更新。同理,对于视图的访问,权限划分为对视图和导出视图的基本表两部分,对于
视图的访问,权限要求视图使用者同时拥有视图和导出视图的基本表的权限。其权限
REVOKE ALL ON customer_table FROM PUBLIC;
REVOKE ALL ON customer_table FROM usera, userb, userc;
GRANT INSERT, DELETE, UPDATE ON customer_table TO PUBLIC;
REVOKE INDEX, SELECT, ALTER (phone) ON customer_table FROM user1;
REVOKE FRAGMENT ALL ON customer_table FROM USER1;
GRANT FRAGMENT INSERT, UPDATE, DELETE ON customer_table (dbspace1) TO user1;
GBase 8s 安全技术指南
南大通用数据技术股份有限公司
- 17 -
判定规则如下表所示:
表 3 视图权限判定
视图权限
创建者
基本表权限
访问者
基本表权限
权限判定
Yes
Yes
Yes
Yes
Yes
Yes
No
No
Yes
No
Yes
Yes
Yes
No
No
No
No
Yes
Yes
No
No
Yes
No
No
No
No
Yes
No
No
No
No
No
对于视图权限的授予和收回,语法等同于对表的权限授予和收回,示例如下:
创建视图示例:
授权语法示例如下:
收回权限语法示例如下: