Установите client_min_messages, чтобы указать c ROLE postgres - PullRequest
0 голосов
/ 16 апреля 2020

Привет. Я пытаюсь установить ошибку client_min_messages = для роли, используя пользователя postgres, но когда я вхожу в роль, я проверяю current_setting ('client_min_messages') и получаю ЗНАЧЕНИЕ ПО УМОЛЧАНИЮ (уведомление). Я уже пытался перезапустить конфигурацию и также провел несколько тестов.

Подводя итог, я сделал:

  1. Войдите в систему с ролью postgres.
  2. проверьте значения по умолчанию client_min_messages ( уведомление) и log_min_messages (предупреждение).
  3. ALTER ROLE anne SET client_min_messages = ошибка;
  4. ALTER ROLE anne SET log_min_messages = паника;
  5. SELECT pg_reload_conf ();
  6. Выйти postgres.
  7. Войти anne.
  8. проверьте SELECT current_setting ('client_min_messages'), возвращая NOTICE (значение по умолчанию).
  9. проверьте SELECT current_setting ('log_min_messages'), возвращая pani c (не значение по умолчанию).
  10. Проверьте приведенный ниже код

    begin;
        do $$
            begin
                raise info ' client_min_messages: %',current_setting('client_min_messages'); -- i get "notice"
                raise debug ' time : %', NOW(); 
                raise notice ' time : %', NOW(); 
                raise warning ' time : %', NOW(); 
        end $$;

Я имею в виду, я должен устанавливать client_min_messages каждый раз, когда я захожу с пользователем? Таким образом, Alter Role / User SET client_min_messages бесполезен?

Я пытался изменить login_min_messages на указанную c роль, и когда я вхожу с ролью, конфигурация остается в порядке (не по умолчанию).

1 Ответ

1 голос
/ 16 апреля 2020

Метод должен работать. Это сработало для меня.

У вас есть переменные окружения (например, PGOPTIONS) или явный вызов команды set client_min_messages в сеансе?

...