设置client_min_messages为特定的ROLE postgres[英] SET client_min_messages to specific ROLE postgres

问题描述

嗨,我尝试使用 postgres 用户将 client_min_messages = error 设置为角色,但是当我登录该角色时,我检查 current_setting('client_min_messages') 并得到默认值(通知).我已经尝试重新启动配置并进行了一些测试.

总结一下我做了:

  1. 使用 postgres 角色登录.
  2. 检查 client_min_messages(notice) 和 log_min_messages(warning) 的默认值.
  3. ALTER ROLE anne SET client_min_messages = 错误;
  4. ALTER ROLE anne SET log_min_messages = 恐慌;
  5. 选择 pg_reload_conf();
  6. 退出 postgres.
  7. 登录安妮.
  8. 检查 SELECT current_setting('client_min_messages'),返回 NOTICE(默认值).
  9. 检查 SELECT current_setting('log_min_messages'),返回恐慌(非默认值).
  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 更改为特定角色,当我使用该角色登录时,配置仍然正常(不是默认值).

推荐答案

该方法应该可以工作.它对我有用.

您是否设置了任何环境变量(如 PGOPTIONS)或在会话中显式调用 set client_min_messages 命令?

本文地址:https://www.itbaoku.cn/post/1739743.html