云数据库 GAUSSDB-CREATE ROW LEVEL SECURITY POLICY:参数说明

时间:2024-04-26 16:14:59

参数说明

  • 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,SELECT FOR UPDATE/SHARE,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表示影响所有数据库用户,可以指定多个受影响的数据库用户。

    系统管理员不受行访问控制特性影响。

support.huaweicloud.com/distributed-devg-v3-gaussdb/gaussdb-12-0535.html