云数据库 GAUSSDB-CREATE ROW LEVEL SECURITY POLICY:参数说明
参数说明
- policy_name
行访问控制策略名称,同一个数据表上行访问控制策略名称不能相同。
- table_name
行访问控制策略的表名。
- PERMISSIVE | RESTRICTIVE
PERMISSIVE指定行访问控制策略为宽容性策略,宽容性策略的条件用OR表达式拼接。RESTRICTIVE指定行访问控制策略为限制性策略,限制性策略的条件用AND表达式拼接。拼接方式如下:
(using_expression_permissive_1 OR using_expression_permissive_2 ...) AND (using_expression_restrictive_1 AND using_expression_restrictive_2 ...)
缺省默认为PERMISSIVE。
- command
当前行访问控制影响的SQL操作,可指定操作包括:ALL、SELECT、UPDATE、DELETE。当未指定时,ALL为默认值,涵盖SELECT、UPDATE、DELETE操作。
当command为SELECT时,SELECT类操作受行访问控制的影响,只能查看到满足条件(using_expression返回值为TRUE)的元组数据,受影响的操作包括SELECT,UPDATE ... RETURNING,DELETE ... RETURNING。
当command为UPDATE时,UPDATE类操作受行访问控制的影响,只能更新满足条件(using_expression返回值为TRUE)的元组数据,受影响的操作包括UPDATE, UPDATE ... RETURNING, SELECT ... FOR UPDATE/SHARE。
当command为DELETE时,DELETE类操作受行访问控制的影响,只能删除满足条件(using_expression返回值为TRUE)的元组数据,受影响的操作包括DELETE, DELETE ... RETURNING。
行访问控制策略与适配的SQL语法关系参见下表:
表1 ROW LEVEL SECURITY策略与适配SQL语法关系 Command
SELECT/ALL policy
UPDATE/ALL policy
DELETE/ALL policy
SELECT
Existing row
No
No
SELECT FOR UPDATE/SHARE
Existing row
Existing row
No
UPDATE
No
Existing row
No
UPDATE RETURNING
Existing row
Existing row
No
DELETE
No
No
Existing row
DELETE RETURNING
Existing row
No
Existing row
- role_name
行访问控制影响的数据库用户。
CURRENT_USER表示当前执行环境的用户名;SESSION_USER则表示会话用户名;当未指定时,PUBLIC为默认值,PUBLIC表示影响所有数据库用户,可以指定多个受影响的数据库用户。
系统管理员不受行访问控制特性影响。
下载云数据库 GAUSSDB用户手册完整版