我正在尝试使用亚马逊在此处推广的“ SELECT INTO OUTFILE S3 ”命令将数据从 Aurora 数据库中的表导出到我在 S3 中创建的存储桶。
Select * from testauroradb.'table1' into outfile S3 's3://data-dump-bucket/Data';
当我尝试运行上述行时,我收到以下错误:
Error Code: 1045. Access denied for user 'username'@'%' (using password: YES)
根据某些形式,这是由于用户没有权限并且需要由 root 用户授予权限。然而,这是 root 用户,根据 Amazon 提供的一些文档,root 用户可以执行“ SELECT INTO S3 ”命令。我还检查并可以验证用户确实有能力运行“ SELECT INTO S3 ”命令。(我知道使用 root 用户不是一个好习惯,但这只是一个测试数据库)。
我还创建了一个 IAM 角色和策略来访问 S3 并将其链接到 Aurora 数据库。访问 S3 的策略:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:AbortMultipartUpload",
"s3:ListBucket",
"s3:DeleteObject",
"s3:ListMultipartUploadParts"
],
"Resource": [
"arn:aws:s3:::data-dump-bucket/Data"
]
}
]
}
我将该策略附加到 IAM 角色。然后,我将角色 ARN 添加到附加到 Aurora 集群的参数组中的参数aws_default_s3_role 。
仅在一些论坛之后,有人成功地将安全组的出站规则更改为“ TYPE:SSH, Port:22, Destination:0.0.0.0/0 ”。但这对我也不起作用。如果有人能告诉我该做什么或我做错了什么,我将不胜感激。