

 从补丁 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 IDENTITY PROVIDER
<a name="r_CREATE_IDENTITY_PROVIDER"></a>

定义新的身份提供者。只有超级用户可以创建身份提供者。

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

```
CREATE IDENTITY PROVIDER identity_provider_name TYPE type_name
NAMESPACE namespace_name
[PARAMETERS parameter_string]
[APPLICATION_ARN arn]
[IAM_ROLE iam_role]
[AUTO_CREATE_ROLES
    [ TRUE [ { INCLUDE | EXCLUDE } GROUPS LIKE filter_pattern] |
      FALSE
    ]
  ];
```

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

 *identity\$1provider\$1name*   
新身份提供者的名称。有关有效名称的更多信息，请参阅[名称和标识符](r_names.md)。

*type\$1name*  
要与之交互的身份提供者。Azure 和 AWSIDC 是目前受支持的仅有身份提供者。

*namespace\$1name*  
命名空间。这是身份提供者目录的唯一速记标识符。

 *parameter\$1string*   
一个包含格式正确的 JSON 对象的字符串，其中包含身份提供者所需的参数和值。

 *arn*   
IAM Identity Center 托管应用程序的 Amazon 资源名称（ARN）。仅当身份提供者类型为 AWSIDC 时，此参数才适用。

 *iam\$1role*   
提供连接到 IAM Identity Center 的权限的 IAM 角色。仅当身份提供者类型为 AWSIDC 时，此参数才适用。

 *auto\$1create\$1roles*   
启用或禁用自动创建角色特征。如果该值为 TRUE，则 Amazon Redshift 启用自动创建角色功能。如果该值为 FALSE，则 Amazon Redshift 禁用自动创建角色功能。如果未指定此参数的值，Amazon Redshift 将使用以下逻辑确定该值：  
+  如果提供了 `AUTO_CREATE_ROLES` 但未指定值，则该值设置为 TRUE。
+  如果未提供 `AUTO_CREATE_ROLES` 且身份提供者为 AWSIDC，则该值设置为 FALSE。
+  如果未提供 `AUTO_CREATE_ROLES` 且身份提供者为 Azure，则该值设置为 TRUE。
要包括组，请指定 `INCLUDE`。默认值为空，这意味着如果 `AUTO_CREATE_ROLES` 为开启，则包括所有组。  
要排除组，请指定 `EXCLUDE`。默认值为空，这意味着如果 `AUTO_CREATE_ROLES` 为开启，则不排除任何组。

 *filter\$1pattern*   
一个有效的 UTF-8 字符表达式，具有与组名称匹配的模式。LIKE 选项执行区分大小写的匹配，支持以下模式匹配元字符：      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/redshift/latest/dg/r_CREATE_IDENTITY_PROVIDER.html)
如果 *filter\$1pattern* 不包含元字符，则模式仅表示字符串本身；在此情况下，LIKE 的行为与等于运算符相同。  
*filter\$1pattern* 支持以下字符：  
+  大写和小写字母字符（A-Z 和 a-z） 
+  数字（0-9） 
+  以下特殊字符：

  ```
  _ % ^ * + ? { } , $
  ```

## 示例
<a name="r_CREATE_IDENTITY_PROVIDER-examples"></a>

下面的示例创建一个名为 *oauth\$1standard*、TYPE 为 *azure* 的身份提供者，以与 Microsoft Azure Active Directory (AD) 建立通信。

```
CREATE IDENTITY PROVIDER oauth_standard TYPE azure
NAMESPACE 'aad'
PARAMETERS '{"issuer":"https://sts.windows.net/2sdfdsf-d475-420d-b5ac-667adad7c702/",
"client_id":"87f4aa26-78b7-410e-bf29-57b39929ef9a",
"client_secret":"BUAH~ewrqewrqwerUUY^%tHe1oNZShoiU7",
"audience":["https://analysis.windows.net/powerbi/connector/AmazonRedshift"]
}'
```

您可以将 IAM Identity Center 托管应用程序与现有预调配集群或 Amazon Redshift Serverless 工作组进行连接。这使您能够通过 IAM Identity Center 管理对 Redshift 数据库的访问权限。为此，请运行如以下示例所示的 SQL 命令。您必须是数据库管理员。

```
CREATE IDENTITY PROVIDER "redshift-idc-app" TYPE AWSIDC
NAMESPACE 'awsidc'
APPLICATION_ARN 'arn:aws:sso::123456789012:application/ssoins-12345f67fe123d4/apl-a0b0a12dc123b1a4'
IAM_ROLE 'arn:aws:iam::123456789012:role/MyRedshiftRole';
```

在本例中，应用程序 ARN 标识要连接到的托管应用程序。您可以通过运行 `SELECT * FROM SVV_IDENTITY_PROVIDERS;` 找到该应用程序。

有关使用 CREATE IDENTITY PROVIDER 的更多信息，包括其他示例，请参阅 [Amazon Redshift 的原生身份提供者 (IdP) 联合身份验证](https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-access-control-native-idp.html)。有关设置从 Redshift 到 IAM Identity Center 的连接的更多信息，请参阅[将 Redshift 与 IAM Identity Center 连接，为用户提供单点登录体验](https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-access-control-idp-connect.html)。