场景
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)
但是,如果我以超级用户身份启动连接(登录)并执行以下操作:
SET SESSION AUTHORIZATION testrole;
SHOW search_path;
结果是:
search_path
----------------
"$user",public
(1 row)
(或任何超级用户的搜索路径)
我的问题是,为什么不SET SESSION AUTHORIZATION
影响电流search_path
?
它是设计的错误还是我只是做错了?
从我发现的一点点来看,SET SEARCH path = schemaname
after的解决方法SET SESSION...
似乎是唯一的解决方案,但这违背了将持久搜索路径分配给角色的目的。