2
場景SET SESSION AUTHORIZATION和<code>testrole</code>搜索路徑
CREATE SCHEMA testschema;
CREATE ROLE testrole LOGIN;
GRANT ALL ON SCHEMA testschema TO testrole;
ALTER ROLE testrole SET search_path = testschema;
現在,如果我發起連接(登錄),則:
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
?
這是一個錯誤,由設計或我只是doinitwrong?
從我發現的小問題來看,在SET SESSION...
之後SET SEARCH path = schemaname
的解決方法似乎是唯一的解決方案,但這種方式卻失去了將持久搜索路徑分配給角色的目的。