【问题标题】:SET client_min_messages to specific ROLE postgres将 client_min_messages 设置为特定角色 postgres
【发布时间】:2020-07-30 01:08:03
【问题描述】:

嗨,我尝试使用 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 更改为特定角色,当我使用该角色登录时,配置仍然正常(不是默认值)。

【问题讨论】:

  • @jjanes 我做了 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. 测试上面的代码。
  • 不要在 cmets 中发布附加信息。 edit 你的问题。
  • 好的,谢谢@a_horse_with_no_name

标签: postgresql set roles pgadmin postgresql-9.6


【解决方案1】:

该方法应该有效。它对我有用。

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

【讨论】:

  • 是的,也为我工作。覆盖其他设置的 SQL 命令set client_min_messages...; 的调用也可能发生在 .psqlrc 文件中。另一种可能性是ALTER ROLE anne IN DATABASE ... 有效。这将优先于未指定 DATABASE 的 ALTER ROLE。有 7 种不同的方法可以做到这一点,除了 postgresql.conf 之外的所有方法都将优先于没有 IN DATABASE 的 ALTER ROLE。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-24
  • 2019-07-20
  • 1970-01-01
  • 1970-01-01
  • 2021-04-24
  • 1970-01-01
相关资源
最近更新 更多