[pgpool-general-jp: 1691] Re: パラメータステータスの取り扱いの変更について
Shingo Kiyoura
kiyoura @ passlogy.com
2022年 3月 3日 (木) 09:43:06 JST
石井様
お世話になっております。清浦です。
tcpdump でパケットを見てみますと、psql で接続時に、確かに session_authorization の
文字列が含まれておりました。
クライントの問題であることが理解できました。session_authorization について
確認いたします。
ご回答頂き、どうも有難うございました。
以上よろしくお願いします。
清浦
From: Tatsuo Ishii <ishii @ sraoss.co.jp>
Subject: Re: [pgpool-general-jp: 1685] パラメータステータスの取り扱いの変更について
Date: Wed, 02 Mar 2022 20:00:10 +0900 (JST)
> 清浦様
>
>> 石井様
>>
>> お世話になっております。清浦です。
>>
>>> 「なにかクエリを実行」のところで、SET SESSION_AUTHORIZATION コマンドを
>>> 実行しているということはないでしょうか?
>>> psql で接続し、何もコマンドを実行しないでpsqlを抜けても同様のログが記
>>> 録されるでしょうか?
>>
>> はい。確かに psql で接続し、何もコマンドを実行しないで psql を抜けても同様のログが
>> 記録されました。
>>
>> SET SESSION_AUTHORIZATION コマンドについてよく解かっていないので確認します。
>>
>> 自分で explicit にセットした覚えはないのですが、もしこれが implicit にどこかでセット
>> されていると、Backend から ParameterStatus Message が切断時に返される理解で正しいでしょうか?
>> (Pgpool-II の問題ではなく、PostgreSQL あるいはクライアントに原因がある理解で正しいでしょうか?)
>
> はい、そう考えています。
>
> 手元の環境でも、PostgreSQLのスーパーユーザで接続した後、以下を実行すると、
>
> test=# set session_authorization to 'foo';
> SET
> test=> \q
>
> 以下のようなログが記録されます。
>
> set session_authorization コマンドを実行したために、バックエンドからParameterStatusメッセージが送られてくる。
>
> 2022-03-02 18:27:24.828: psql pid 612368: LOG: DB node id: 0 backend pid: 612611 statement: set session_authorization to 'foo';
> 2022-03-02 18:27:24.829: psql pid 612368: LOG: ParameterStatus message from backend: 0
> 2022-03-02 18:27:24.829: psql pid 612368: DETAIL: parameter name: "is_superuser" value: "off"
> 2022-03-02 18:27:24.829: psql pid 612368: LOG: ParameterStatus message from backend: 0
> 2022-03-02 18:27:24.829: psql pid 612368: DETAIL: parameter name: "session_authorization" value: "foo"
>
> セッションを切断したために、DISCARD ALLが実行される(pgpool.confのreset_query_listで指定されている)。結果、ユーザがsuper userに戻るので、やはりバックエンドからParameterStatusメッセージが送られてくる。
>
> 2022-03-02 18:27:27.287: psql pid 612368: LOG: DB node id: 0 backend pid: 612611 statement: DISCARD ALL
> 2022-03-02 18:27:27.288: psql pid 612368: LOG: ParameterStatus message from backend: 0
> 2022-03-02 18:27:27.288: psql pid 612368: DETAIL: parameter name: "is_superuser" value: "on"
> 2022-03-02 18:27:27.288: psql pid 612368: LOG: ParameterStatus message from backend: 0
> 2022-03-02 18:27:27.288: psql pid 612368: DETAIL: parameter name: "session_authorization" value: "t-ishii"
>
> ちなみにこの環境では"t-ishii"はPostgreSQLのスーパユーザです。
>
> set session_authorization to 'foo';を実行しなければ、このようなログは記録されません。
> --
> Tatsuo Ishii
> SRA OSS, Inc. Japan
> English: http://www.sraoss.co.jp/index_en.php
> Japanese:http://www.sraoss.co.jp
pgpool-general-jp メーリングリストの案内