[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 メーリングリストの案内