シナリオ
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...
が唯一の解決策のようですが、そのようなものは、永続的な検索パスをロールに割り当てるという目的を無効にします。