【发布时间】:2020-07-30 01:08:03
【问题描述】:
嗨,我尝试使用 postgres 用户将 client_min_messages = error 设置为角色,但是当我登录该角色时,我检查 current_setting('client_min_messages') 并得到默认值(通知)。我已经尝试重新启动配置并进行了一些测试。
总结一下我做了:
- 以 postgres 角色登录。
- 检查client_min_messages(notice)和log_min_messages(warning)的默认值。
- ALTER ROLE anne SET client_min_messages = 错误;
- ALTER ROLE anne SET log_min_messages = 恐慌;
- 选择 pg_reload_conf();
- 注销 postgres。
- 登录安妮。
- 检查 SELECT current_setting('client_min_messages'),返回 NOTICE(默认值)。
- 检查 SELECT current_setting('log_min_messages'),返回恐慌(非默认值)。
- 测试下面的代码
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