数据仓库服务 GAUSSDB(DWS)-CREATE ROW LEVEL SECURITY POLICY:参数说明

时间:2024-01-16 08:48:20

参数说明

  • policy_name

    行访问控制策略名称,同一个数据表上行访问控制策略名称不能相同。

  • table_name

    行访问控制策略的表名。

  • PERMISSIVE

    指定行访问控制策略的类型为宽容性策略。对于一个给定的查询,将使用“OR”操作符将所有的宽容性策略组合。行访问控制策略的类型默认为宽容性策略。

  • RESTRICTIVE

    指定行访问控制策略的类型为限制性策略。对于一个给定的查询,将使用“AND”操作符将所有的限制性策略组合。

    至少需要一条宽容性策略允许对记录的访问。如果只有限制性策略存在,则不能访问任何记录。当宽容性和限制性策略共存时,只有当记录能通过至少一条宽容性策略以及所有的限制性策略时,该记录才能访问。

  • 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

    行访问控制影响的数据库用户。

    当未指定时,PUBLIC为默认值,PUBLIC表示影响所有数据库用户,可以指定多个受影响的数据库用户。

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

support.huaweicloud.com/sqlreference-dws/dws_06_0169.html