

 从补丁 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/)。

# 用于管理动态数据掩蔽策略的 SQL 命令
<a name="r_ddm-procedures"></a>

您可以执行以下操作来创建、附加、分离和删除动态数据掩蔽策略：
+ 要创建 DDM 策略，请使用 [CREATE MASKING POLICY](r_CREATE_MASKING_POLICY.md) 命令。

  以下是使用 SHA-2 哈希函数创建屏蔽策略的示例。

  ```
  CREATE MASKING POLICY hash_credit 
  WITH (credit_card varchar(256)) 
  USING (sha2(credit_card + 'testSalt', 256));
  ```
+ 要更改现有 DDM 政策，请使用 [ALTER MASKING POLICY](r_ALTER_MASKING_POLICY.md) 命令。

  以下是更改现有掩蔽政策的示例。

  ```
  ALTER MASKING POLICY hash_credit
  USING (sha2(credit_card + 'otherTestSalt', 256));
  ```
+ 要将表上的 DDM 策略附加到一个或多个用户或角色，请使用 [ATTACH MASKING POLICY](r_ATTACH_MASKING_POLICY.md) 命令。

  下面是将屏蔽策略附加到列/角色对的示例。

  ```
   ATTACH MASKING POLICY hash_credit 
  ON credit_cards (credit_card) 
  TO ROLE science_role 
  PRIORITY 30;
  ```

  PRIORITY 子句确定当多个策略附加到同一列时，哪个屏蔽策略适用于用户会话。例如，如果前面示例中的用户在同一信用卡列附加了另一个屏蔽策略，该策略的优先级为 20，则 science\$1role 的策略是适用的策略，因为它具有更高的优先级，即 30。
+ 要将表上的 DDM 策略与一个或多个用户或角色分离，请使用 [DETACH MASKING POLICY](r_DETACH_MASKING_POLICY.md) 命令。

  下面是从列/角色对分离屏蔽策略的示例。

  ```
  DETACH MASKING POLICY hash_credit 
  ON credit_cards(credit_card) 
  FROM ROLE science_role;
  ```
+ 要从所有数据库删除 DDM 策略，请使用 [DROP MASKING POLICY](r_DROP_MASKING_POLICY.md) 命令。

  以下是从所有数据库删除屏蔽策略的示例。

  ```
  DROP MASKING POLICY hash_credit;  
  ```