AWS Ec2 postgres \ copy ...: разрешение отклонено - PullRequest
0 голосов
/ 30 ноября 2018

У меня есть экземпляр aws ec2, на котором запущен postgres.У меня есть файл в том же экземпляре, который является CSV-файлом, чтобы я мог заполнить базу данных.Когда я захожу в postgres, чтобы запустить файл копирования, он говорит, что в разрешении отказано.Я получаю доступ к оболочке postgress с помощью суперпользователя.Я не уверен, почему мне отказывают в разрешении.Вот снимок экрана с тем, что я запускаю и получаю ошибку.

enter image description here

1 Ответ

0 голосов
/ 01 декабря 2018

Вы не говорите, что пользователь ОС запустил psql, но предположительно это postgres.

Он не имеет права читать любой файл внутри /home/ec2-user, поскольку у этого каталога есть разрешенияdrwx------, что означает, что только ec2-user или root могут просматривать его (тот факт, что сам CSV-файл имеет разрешения на чтение во всем мире, недостаточен, все каталоги в иерархии должны иметь бит x, установленный вразрешить обход).

Наиболее распространенные решения:

1) chmod 755 /home/ec2-user, чтобы postgres мог получить к нему доступ.

2) Запустить psql под ec2-user сявная опция -U для указания пользователя базы данных.Это также может означать, что пароль будет запрашиваться в зависимости от правил аутентификации Postgres, установленных в pg_hba.conf.Вы также можете редактировать эти правила, если вы являетесь администратором, и они не соответствуют вашим потребностям.

3) Поместите файлы данных CSV в специальный каталог, который могут читать как ec2-user, так и postgres,так, как правило, это будет за пределами любого каталога /home.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...