我有一个在其上运行postgres的aws ec2实例。我在同一实例中有一个csv文件,以便可以填充数据库。当我进入postgres运行复制文件时,就是说该权限被拒绝。我正在以超级用户身份访问Postgress Shell。我不确定为什么我的权限被拒绝。这是我正在运行的屏幕快照以及出现的错误。
答案 0 :(得分:0)
您没有说什么操作系统用户启动了psql
,但大概是postgres
。
它无权读取/home/ec2-user
内的任何文件,因为该目录具有权限drwx------
,这意味着只有ec2-user
或root
可以查看( CSV文件本身具有全球读取权限的事实还不够,因此层次结构中的所有目录都必须将x
位设置为允许遍历。
最常见的解决方案:
1)chmod 755 /home/ec2-user
,以便Postgres可以访问它。
2)使用显式psql
选项在ec2-user
下启动-U
,以指定数据库用户。这也可能意味着将要询问密码,具体取决于pg_hba.conf
中设置的Postgres身份验证规则。如果您是管理员并且不符合您的需求,也可以编辑这些规则。
3)将CSV数据文件放在ec2-user
和postgres
均可读取的专用目录中,因此通常位于任何/home
目录之外。