

# 配置对于预编译语句的访问
<a name="security-iam-athena-prepared-statements"></a>

本主题介绍了 Amazon Athena 中可用于预编译语句的 IAM 权限。每当您使用 IAM 策略时，请确保遵循 IAM 最佳实践。有关更多信息，请参阅 [IAM 用户指南](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)中的 *IAM 安全最佳实践*。

有关预编译语句的更多信息，请参阅 [使用参数化查询](querying-with-prepared-statements.md)。

创建、管理和执行预编译语句需要以下 IAM 权限。

```
athena:CreatePreparedStatement
athena:UpdatePreparedStatement
athena:GetPreparedStatement
athena:ListPreparedStatements
athena:DeletePreparedStatement
```

如下表所示，使用这些权限。


****  

| 要执行的操作 | 使用这些权限 | 
| --- | --- | 
| 运行 PREPARE 查询 | athena:StartQueryExecution athena:CreatePreparedStatement | 
| 重新运行 PREPARE 查询以更新现有预编译语句 | athena:StartQueryExecution athena:UpdatePreparedStatement | 
| 运行 EXECUTE 查询 | athena:StartQueryExecution athena:GetPreparedStatement | 
| 运行 DEALLOCATE PREPARE 查询 | athena:StartQueryExecution athena:DeletePreparedStatement | 

## 示例
<a name="security-iam-athena-prepared-statements-example"></a>

在以下示例中，IAM 策略授予对指定账户 ID 和工作组管理和运行预编译语句的权限。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "athena:StartQueryExecution",
                "athena:CreatePreparedStatement",
                "athena:UpdatePreparedStatement",
                "athena:GetPreparedStatement",
                "athena:DeletePreparedStatement",
                "athena:ListPreparedStatements"
            ],
            "Resource": [
                "arn:aws:athena:*:111122223333:workgroup/<workgroup-name>"
            ]
        }
    ]
}
```

------