gpt4 book ai didi

sql - SET SESSION AUTHORIZATION 和搜索路径

转载 作者:行者123 更新时间:2023-11-29 12:14:07 25 4
gpt4 key购买 nike

场景

CREATE SCHEMA testschema;
CREATE ROLE testrole LOGIN;
GRANT ALL ON SCHEMA testschema TO testrole;
ALTER ROLE testrole SET search_path = testschema;

现在,如果我以 testrole 身份启动连接(登录),则:

SHOW search_path; 

给出期望的结果:

search_path 
-------------
testschema
(1 row)

但是,如果我以 super 用户身份启动连接(登录)并执行以下操作:

SET SESSION AUTHORIZATION testrole;
SHOW search_path;

结果:

search_path   
----------------
"$user",public
(1 row)

(或者 super 用户的搜索路径是什么)


我的问题是,为什么SET SESSION AUTHORIZATION不影响当前的search_path
这是一个设计错误还是我只是做错了?

从我发现的一点点来看,在 SET SESSION... 之后 SET SEARCH path = schemaname 的解决方法似乎是唯一的解决方案,但是那种违背了将持久搜索路径分配给角色的目的。

最佳答案

这是设计使然。我在 ALTER ROLE 上引用手册

This only happens at login time; executing SET ROLE or SET SESSION AUTHORIZATION does not cause new configuration values to be set.

关于sql - SET SESSION AUTHORIZATION 和搜索路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12967009/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com