

 从补丁 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="query-editor-v2-schedule-query-authentication"></a>

当您计划查询时，在 SQL 运行时使用下列身份验证方法之一。每种方法都需要查询编辑器 v2 上的不同输入组合。用于运行 SQL 语句的数据 API 支持这些身份验证方法。

用于运行查询的数据库用户或角色必须具有必要的数据库权限。例如，要授予对于表 `mytable` 的 `IAMR:MyRedshiftQEv2Scheduler` 权限，请运行以下 SQL 命令。

```
GRANT all ON TABLE mytable TO "IAMR:MyRedshiftQEv2Scheduler";
```

要查看集群或工作组中的数据库用户列表，请查询系统视图 `PG_USER_INFO`。

**注意**  
 您为其计划查询的任何 Redshift Serverless 工作组都必须使用键 `RedshiftDataFullAccess` 进行标记。有关更多信息，请参阅 [授予对 Amazon Redshift 数据 API 的访问权限](data-api-access.md)。  
作为标记工作组的替代方法，您可以向 IAM 角色（随计划指定）添加允许 `redshift-serverless:GetCredentials` 的内联策略。例如：  

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "UseTemporaryCredentialsForAllServerlessWorkgroups",
            "Effect": "Allow",
            "Action": "redshift-serverless:GetCredentials",
            "Resource": [
                "arn:aws:redshift-serverless:*:*:workgroup/*"
            ]
        }
    ]
}
```

**AWS Secrets Manager**  
使用此方法，为存储在 AWS Secrets Manager 中的 **secret-arn** 提供一个密钥值。此密钥包含用于连接到数据库的凭证。在创建集群或工作组时，您可能已经使用适当的凭证创建了密钥。密钥必须使用键 `RedshiftDataFullAccess` 进行标记。如果标签键尚不存在，请使用 AWS Secrets Manager 控制台进行添加。有关创建密钥的信息，请参阅[为数据库连接凭证创建密钥](redshift-secrets-manager-integration-create.md)。  
有关最低权限的更多信息，请参阅《AWS Secrets Manager 用户指南》**中的[使用 AWS Secrets Manager 创建和管理密钥](https://docs.aws.amazon.com/secretsmanager/latest/userguide/managing-secrets.html)。

**临时凭证**  
使用此方法，在连接到集群中的数据库时，需提供您的**数据库名称**和**数据库用户**值。在连接到工作组中的数据库时，只需提供您的**数据库名称**。  
连接到集群时，`AmazonRedshiftDataFullAccess` 策略允许名为 `redshift_data_api_user` 的数据库用户拥有对 `redshift:GetClusterCredentials` 的权限。如果要使用其他数据库用户运行 SQL 语句，请向附加到您集群的 IAM 角色添加策略以允许 `redshift:GetClusterCredentials`。以下示例策略允许数据库用户 `awsuser` 和 `myuser`。    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "UseTemporaryCredentialsForAllDbUsers",
            "Effect": "Allow",
            "Action": "redshift:GetClusterCredentials",
            "Resource": [
                "arn:aws:redshift:*:*:dbuser:*/awsuser",
                "arn:aws:redshift:*:*:dbuser:*/myuser"
            ]
        }
    ]
}
```