

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

# CREATE MASKING POLICY
<a name="r_CREATE_MASKING_POLICY"></a>

创建新的动态数据掩蔽策略以模糊处理给定格式的数据。有关动态数据掩蔽的更多信息，请参阅 [动态数据掩蔽](t_ddm.md)。

超级用户和具有 sys:secadmin 角色的用户或角色可以创建屏蔽策略。

## 语法
<a name="r_CREATE_MASKING_POLICY-synopsis"></a>

```
CREATE MASKING POLICY 
   { policy_name | database_name.policy_name } [IF NOT EXISTS]
   WITH (input_columns)
   USING (masking_expression);
```

## 参数
<a name="r_CREATE_MASKING_POLICY-parameters"></a>

 *policy\$1name*   
屏蔽策略的名称。屏蔽策略不能与数据库中已存在的另一个屏蔽策略的名称相同。

database\$1name  
将在其中创建策略的数据库的名称。可以在连接的数据库或 Amazon Redshift 联合身份验证权限目录上创建策略。

*input\$1columns*   
格式为 (col1 type, col2 type ...) 的列名元组。  
列名用作屏蔽表达式的输入。列名不必与要掩蔽的列的名称相匹配，但输入和输出数据类型必须匹配。

*masking\$1expression*  
用于转换目标列的 SQL 表达式。可以使用诸如字符串操作函数之类的数据操作函数来编写该表达式，也可以与使用 SQL、Python 或 AWS Lambda 编写的用户定义函数结合使用。您可以让具有多个输出的屏蔽策略包括一个列表达式元组。如果您使用常量作为掩蔽表达式，则必须将其显式转换为与输入类型匹配的类型。  
 您必须对在屏蔽表达式中使用的任何用户定义函数具有 USAGE 权限。

有关在 Amazon Redshift 联合身份验证权限目录上使用 CREATE MASKING POLICY 的信息，请参阅[使用 Amazon Redshift 联合身份验证权限管理访问控制](https://docs.aws.amazon.com/redshift/latest/dg/federated-permissions-managing-access.html)。