

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

# ALTER IDENTITY PROVIDER
<a name="r_ALTER_IDENTITY_PROVIDER"></a>

更改身份提供者以分配新的参数和值。运行此命令时，先前设置的所有参数值都将在分配新值之前删除。只有超级用户可以更改身份提供者。

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

```
ALTER IDENTITY PROVIDER identity_provider_name
[PARAMETERS parameter_string]
[NAMESPACE namespace]
[IAM_ROLE iam_role]
[AUTO_CREATE_ROLES
    [ TRUE [ { INCLUDE | EXCLUDE } GROUPS LIKE filter_pattern] |
      FALSE
    ]
[DISABLE | ENABLE]
```

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

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

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

 *命名空间*   
组织命名空间。

 *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_ALTER_IDENTITY_PROVIDER.html)
如果 *filter\$1pattern* 不包含元字符，则模式仅表示字符串本身；在此情况下，LIKE 的行为与等于运算符相同。  
*filter\$1pattern* 支持以下字符：  
+  大写和小写字母字符（A-Z 和 a-z） 
+  数字（0-9） 
+  以下特殊字符：

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

 *DISABLE 或 ENABLE*   
开启或关闭身份提供者。默认值为 ENABLE。

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

以下示例更改名为 *oauth\$1standard* 的身份提供者。它特别适用于 Microsoft Azure AD 作为身份提供者的情况。

```
ALTER IDENTITY PROVIDER oauth_standard
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"]
}'
```

以下示例显示了如何设置身份提供者命名空间。这可能适用于 Microsoft Azure AD（如果它遵循与上一个示例类似的语句），也可能适用于其它身份提供者。如果您通过托管应用程序设置了连接，则它也可能适用于将现有的 Amazon Redshift 预调配集群或 Amazon Redshift Serverless 工作组连接到 IAM Identity Center 的情况。

```
ALTER IDENTITY PROVIDER "my-redshift-idc-application"
NAMESPACE 'MYCO';
```

以下示例设置了 IAM 角色，并适用于配置 Redshift 与 IAM Identity Center 集成的使用案例。

```
ALTER IDENTITY PROVIDER "my-redshift-idc-application"
IAM_ROLE 'arn:aws:iam::123456789012:role/myadministratorrole';
```

有关设置从 Redshift 到 IAM Identity Center 的连接的更多信息，请参阅[将 Redshift 与 IAM Identity Center 连接，为用户提供单点登录体验](https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-access-control-idp-connect.html)。

**禁用身份提供者**

以下示例语句显示了如何禁用身份提供者。禁用身份提供者后，身份提供者中的联合用户将无法登录集群，直至再次启用它。

```
ALTER IDENTITY PROVIDER "redshift-idc-app" DISABLE;
```