ATTACH MASKING POLICY
将现有动态数据掩蔽策略附加到列。有关动态数据掩蔽的更多信息,请参阅 动态数据掩蔽。
超级用户和具有 sys:secadmin 角色的用户或角色可以附加屏蔽策略。
语法
ATTACH MASKING POLICY policy_name ON { relation_name } ( {output_columns_names | output_path} ) [ USING ( {input_column_names | input_path )} ] TO { user_name | ROLE role_name | PUBLIC } [ PRIORITY priority ];
参数
- policy_name
-
要附加的屏蔽策略的名称。
- relation_name
-
要将掩蔽策略附加到的关系的名称。
- output_column_names
-
将要应用屏蔽策略的列的名称。
- output_paths
-
掩蔽策略将应用于的 SUPER 对象的完整路径,包括列名。例如,对于具有名为
person
的 SUPER 类型列的关系,output_path 可能为person.name.first_name
。 - input_column_names
-
将用作屏蔽策略输入的列的名称。此参数为可选的。如果未指定,则掩蔽策略使用 output_column_names 作为输入。
- input_paths
-
将用作掩蔽策略输入的 SUPER 对象的完整路径。此参数为可选的。如果未指定,则掩蔽策略使用 output_path 作为输入。
- user_name
-
要附加屏蔽策略的用户的名称。您不能将两个策略附加到用户和列或角色和列的相同组合。您可以将一个策略附加到用户,将另一个策略附加到该用户的角色。在这种情况下,优先级较高的策略适用。
在单个 ATTACH MASKING POLICY 命令中,您只能设置 user_name、role_name 和 PUBLIC 中的一项。
- role_name
-
要附加屏蔽策略的角色的名称。您不能将两个策略附加到同一个列/角色对。您可以将一个策略附加到用户,将另一个策略附加到该用户的角色。在这种情况下,优先级较高的策略适用。
在单个 ATTACH MASKING POLICY 命令中,您只能设置 user_name、role_name 和 PUBLIC 中的一项。
- PUBLIC
-
将屏蔽策略附加到访问表的所有用户。您必须为附加到特定列/用户或列/角色对的其他屏蔽策略分配比 PUBLIC 策略更高的优先级,这样才能让这些策略适用。
在单个 ATTACH MASKING POLICY 命令中,您只能设置 user_name、role_name 和 PUBLIC 中的一项。
- priority
-
屏蔽策略的优先级。当多个屏蔽策略应用于给定用户的查询时,具有最高优先级的策略适用。
不能将两个不同的策略以相同的优先级附加到同一列上,即使这两个策略附加到了不同的用户或角色。您可以多次将相同的策略附加到同一组表、输出列、输入列和优先级参数,只要每次附加策略的用户或角色不同即可。
即使两个策略适用于不同的角色,您也无法将一个策略应用于与该列中附加的另一个策略具有相同优先级的列。该字段是可选的。如果未指定优先级,则屏蔽策略默认为优先级为 0。