[pgsql-jp: 34764] Re: 最後に作成したグループにHBAが効かない

TAKATSUKA Haruka harukat @ epoque.co.jp
2005年 1月 29日 (土) 03:37:43 JST


高塚と申します。

On Fri, 28 Jan 2005 16:23:07 +0900
佐藤卓史 <takusato1974 @ yahoo.co.jp> wrote:

> はじめまして。佐藤と申します。
> よろしくお願いいたします。
> 
> Gentoo Linux 上に PostgreSQL 7.4.6 をインストール、設定していて、
> 「pg_hba.conf」の「+グループ名」が効かないことがあることに気が付きました。

本当ですね。

=# CREATE GROUP group1;
=# CREATE USER user1 encrypted password 'user1';
=# ALTER GROUP group1 ADD USER user1;
とすると、即座に $PGDATA/data/global/pg_group が更新されるのに、

=# create group group1;
=# create user user1 encrypted password 'user1' in group group1;
だと変化しません。

|backend/commands/user.c
| void
| AtEOXact_UpdatePasswordFile(bool isCommit)
| {
|    Relation    urel = NULL;
|    Relation    grel = NULL;|
|
|    if (!(user_file_update_needed || group_file_update_needed))
|        return;

user_fileとgroup_fileを片方ずつ更新が必要な状況なら動作するわけで、
これバグですよね。
(残念ながら) PosetgreSQL 8.0では既に直されているみたいです。
#ピント外れてましたら識者ツッコミ求む

> 
> いろいろ調べてみると、どうも一番最後に作成したグループに対して効かないよ
> うです。再現させる手順は以下の通りです。
> 
> --------
> 1. デーベース初期化後、「pg_hba.conf」を以下のように変更し、PostgreSQLを
> 起動。
> local all +group1,+group2 md5
> local all all             trust
> 
> 2.グループ「group1」と所属するユーザ「user1」を作成。
> # create group group1;
> # create user user1 encrypted password 'user1' in group group1;
> 
> 3.「psql -U ユーザ名 -l」を実行。
>  → user1:パスワードを求められない。
> 
> 4.グループ「group2」と所属するユーザ「user2」を作成。
> # create group group2;
> # create user user2 encrypted password 'user2' in group group2;
> 
> 5.「psql -U ユーザ名 -l」を実行。
>  → user1:パスワードを求められる。
>    user2:パスワードを求められない。
> 
> 6.グループ「dummy」を作成し、すぐに削除。
> # create group dummy;
> # drop group dummy;
> 
> 7.「psql -U ユーザ名 -l」を実行。
>  → user1、user2:パスワードを求められる。
> --------
> 
> アクセス制御をかけたいグループを最後に作成しなければ問題ないのですが、ご
> 報告させていただきます。
> 
> -- 
> Takuji Sato <takusato1974 @ yahoo.co.jp>
> http://www.geocities.jp/takusato1974/
> 
> __________________________________
> Let's Celebrate Together!
> Yahoo! JAPAN
> http://pr.mail.yahoo.co.jp/so2005/
> 


-- 
			--  TAKATSUKA Haruka  --  高塚 遙  --
			harukat @ epoque.co.jp / arukat @ ezweb.ne.jp
			http://harukat.hp.infoseek.co.jp



pgsql-jp メーリングリストの案内