【问题标题】:AWS Ec2 postgres \copy...: permission deniedAWS Ec2 postgres \copy ...:权限被拒绝
【发布时间】:2018-12-02 00:02:02
【问题描述】:

我有一个在其上运行 postgres 的 aws ec2 实例。我在同一个实例中有一个文件,它是一个 csv 文件,以便我可以填充数据库。当我进入 postgres 运行复制文件时,它说权限被拒绝。我正在使用超级用户访问 postgress shell。我不确定为什么我的权限被拒绝。这是我正在运行的内容和遇到的错误的屏幕截图。

【问题讨论】:

  • 您是否尝试过使用 chmod 为 .CSV 文件设置文件权限?

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


【解决方案1】:

你没有说psql是哪个操作系统用户启动的,但大概是postgres

它没有权限读取/home/ec2-user里面的任何文件,因为这个目录有drwx------的权限,也就是说只有ec2-user或者root可以查看它(事实上CSV文件本身有全球读取权限不足,层次结构中的所有目录都必须设置x 位以允许遍历)。

最常见的解决方案:

1) chmod 755 /home/ec2-user 所以 postgres 可以访问它。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-24
    • 2021-11-09
    • 2019-05-27
    • 2021-11-18
    • 2014-07-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多