Создать пользователя только для чтения для реплик postgres - PullRequest
0 голосов
/ 19 июня 2019

Я недавно внедрил потоковую репликацию и мне нужно создать «пользователя отчета» для реплики.Этот пользователь будет использоваться для доступа к базе данных через ODBC для создания отчетов с.

На подчиненном устройстве (реплика БД). Кажется, я не могу создать новых пользователей.Мне также нужно изменить пароль пользователя «postgres» на ведомом устройстве.Вот что я пробовал и какие ошибки я получаю:

CREATE ROLE readaccess;
ERROR:  cannot execute CREATE ROLE in a read-only transaction
\password postgres
ERROR:  cannot execute ALTER ROLE in a read-only transaction

Как мне создать нового пользователя только для чтения для моей реплики?Как я могу изменить пароль пользователя 'postgres' на реплике?

Примечание: я понимаю, что для реплики вы можете (или должны) иметь доступ только для чтения.

Спасибо.

1 Ответ

0 голосов
/ 20 июня 2019

Как вы обнаружили, реплика в любом случае доступна только для чтения.Таким образом, у вас есть несколько вариантов.

  1. Просто используйте любую из ваших учетных записей из основной.У них будут одинаковые разрешения для реплики (за исключением того, что они не могут изменять данные).
  2. Создайте специального пользователя, который имеет только полномочия «выбор» для первичного объекта, и этот пользователь перенаправится на реплику.

Что касается разных паролей на основной и реплике, вы не можете.Если это сложное требование для вас, вам придется изучить «логическую репликацию».

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