Отказано в разрешении Postgres для аутентификации отношения / пароля для пользователя - PullRequest
0 голосов
/ 11 января 2019

У меня есть существующая и работающая установка postgres в производственной системе. Мне нужно создать новые таблицы. Я создал таблицы и попытался получить доступ к таблицам с пользователем, который используется PHP.

my_user_1701usr@pg01cid1701db01 ERROR:  permission denied for relation lstats_2019

Ok. В этом есть смысл. Я не определил никаких прав по умолчанию, поэтому, возможно, мне придется предоставить права пользователю:

GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public to my_user_1701usr;
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public to my_user_1701usr;
GRANT ALL PRIVILEGES ON ALL FUNCTIONS IN SCHEMA public to my_user_1701usr;

Итак, давайте попробуем еще раз:

my_user_1701usr@pg01cid1701db01 ERROR:  permission denied for relation lstats_2019

Mhhh. До сих пор не работает. Но почему? Пользователь 'theusername' является владельцем базы данных. Кроме того, я предоставил этому пользователю все возможное. Я даже пытался указать таблицы:

grant all on tablename to my_user_1701usr;

Но он все еще не работал, даже если я установил владельца таблиц для существующего пользователя. Вот я и подумала: может, пользователь как-то испортился и создал нового пользователя:

create user my_user_new with password 'test';

Теперь я получаю сообщение об ошибке:

password authentication failed for user "my_user_new"

Я пробовал разные решения:

alter role my_user_new password 'md5herethehash'; -- md5 is configured in pg_hba.conf
alter role my_user_new encrypted password 'md5herethehash';

Но все же я получил ту же ошибку:

password authentication failed for user "my_user_new"

Теперь у меня нет дальнейшей идеи. Старый пользователь может подключиться, но я не могу получить доступ к новым таблицам, хотя пользователь является владельцем базы данных и таблиц, и ему были предоставлены все возможные права. Вновь созданный пользователь не может подключиться к базе данных с помощью любого метода, который мне удалось найти в Google.

Я также сам проверил логи postgres. Но они содержат только ту же информацию, что и журналы процесса PHP. Понятия не имею, как поступить. У тебя есть идеи?

Спасибо, прямо сейчас!

С наилучшими пожеланиями

mschop


Редактировать 1: По запросу: Postgres-версия: 90514


Редактировать 2:

Вывод "\ dn + public":

  Name  |      Owner      |         Access privileges          |      Description
--------+-----------------+------------------------------------+------------------------
 public | my_user_1701usr | my_user_1701usr=UC/my_user_1701usr+| standard public schema
        |                 | =UC/my_user_1701usr                |

Вывод "\ dp public.lstats_2019":

 Schema |    Name     | Type  |            Access privileges            | Column privileges | Policies
--------+-------------+-------+-----------------------------------------+-------------------+----------
 public | lstats_2019 | table | my_user_1701usr=arwdDxt/my_user_1701usr |                   |
(1 row)
1046 * * Обновление:

Я только что удалил таблицы и воссоздал их под пользователем my_user_1701usr, а не как postgres. Кажется, сейчас работает. Но я не понимаю почему. Поэтому я оставляю этот вопрос открытым.

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