AWS Ec2 postgres \ copy ...:权限被拒绝

时间:2018-11-30 18:57:12

标签: postgresql amazon-web-services amazon-ec2

我有一个在其上运行postgres的aws ec2实例。我在同一实例中有一个csv文件,以便可以填充数据库。当我进入postgres运行复制文件时,就是说该权限被拒绝。我正在以超级用户身份访问Postgress Shell。我不确定为什么我的权限被拒绝。这是我正在运行的屏幕快照以及出现的错误。

enter image description here

1 个答案:

答案 0 :(得分:0)

您没有说什么操作系统用户启动了psql,但大概是postgres

它无权读取/home/ec2-user内的任何文件,因为该目录具有权限drwx------,这意味着只有ec2-userroot可以查看( CSV文件本身具有全球读取权限的事实还不够,因此层次结构中的所有目录都必须将x位设置为允许遍历。

最常见的解决方案:

1)chmod 755 /home/ec2-user,以便Postgres可以访问它。

2)使用显式psql选项在ec2-user下启动-U,以指定数据库用户。这也可能意味着将要询问密码,具体取决于pg_hba.conf中设置的Postgres身份验证规则。如果您是管理员并且不符合您的需求,也可以编辑这些规则。

3)将CSV数据文件放在ec2-userpostgres均可读取的专用目录中,因此通常位于任何/home目录之外。