

 从补丁 198 开始，Amazon Redshift 将不再支持创建新的 Python UDF。现有的 Python UDF 将继续正常运行至 2026 年 6 月 30 日。有关更多信息，请参阅[博客文章](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)。

# 动态数据掩蔽策略层次结构
<a name="t_ddm-hierarchy"></a>

在附加多个掩蔽策略时，请注意以下事项：
+ 您可以将多个屏蔽策略附加到单个列。
+ 当多个屏蔽策略适用于一个查询时，附加到每个相应列的最高优先级策略适用。考虑以下示例。

  ```
  ATTACH MASKING POLICY partial_hash
  ON credit_cards(address, credit_card)
  TO ROLE analytics_role 
  PRIORITY 20;
  
  ATTACH MASKING POLICY full_hash
  ON credit_cards(credit_card, ssn)
  TO ROLE auditor_role 
  PRIORITY 30;
  
  SELECT address, credit_card, ssn
  FROM credit_cards;
  ```

  运行 SELECT 语句时，同时具有分析和审计角色的用户会看到应用了 `partial_hash` 屏蔽策略的地址列。他们会看到应用了 `full_hash` 掩蔽策略的信用卡和 SSN 列，因为 `full_hash` 策略在信用卡列上的优先级更高。
+  如果在附加屏蔽策略时未指定优先级，则默认为优先级为 0。
+ 您不能将两个具有相同优先级的策略附加到同一列。
+ 您不能将两个策略附加到用户和列或角色和列的相同组合。
+ 当多个掩蔽策略适用于同一 SUPER 路径，同时附加到同一用户或角色时，只有优先级最高的掩蔽策略才会生效。考虑以下示例。

  第一个示例显示两个掩蔽策略附加在同一路径上，优先级较高的策略生效。

  ```
  ATTACH MASKING POLICY hide_name
  ON employees(col_person.name)
  TO PUBLIC
  PRIORITY 20;
  
  ATTACH MASKING POLICY hide_last_name
  ON employees(col_person.name.last)
  TO PUBLIC
  PRIORITY 30;
  
  --Only the hide_last_name policy takes effect.
  SELECT employees.col_person.name FROM employees;
  ```

  第二个示例显示两个掩蔽策略附加到同一 SUPER 对象中的不同路径，这两个策略之间没有冲突。这两个掩蔽策略将同时适用。

  ```
  ATTACH MASKING POLICY hide_first_name
  ON employees(col_person.name.first)
  TO PUBLIC
  PRIORITY 20;
  
  ATTACH MASKING POLICY hide_last_name
  ON employees(col_person.name.last)
  TO PUBLIC
  PRIORITY 20;
  
  --Both col_person.name.first and col_person.name.last are masked.
  SELECT employees.col_person.name FROM employees;
  ```

要确认哪个掩蔽策略适用于给定的用户和列或角色和列组合，具有 [https://docs.aws.amazon.com/redshift/latest/dg/r_roles-default.html](https://docs.aws.amazon.com/redshift/latest/dg/r_roles-default.html) 角色的用户可以在 [SVV\_ATTACHED\_MASKING\_POLICY](r_SVV_ATTACHED_MASKING_POLICY.md) 系统视图中查找列/角色或列/用户对。有关更多信息，请参阅 [动态数据掩蔽系统视图](r_ddm-svv.md)。