[pgcluster: 83] Re: pgcluster環境での一般ユーザ作成について

dshaeno dshaeno @ m-surf.ne.jp
2004年 2月 6日 (金) 15:16:24 JST


Jun Kuriyama <kuriyama @ imgsrc.co.jp> wrote:

波江野です。お世話になります。
>  pgcluster だからなのか、というのがよくわかっていないのですが、こちら
> でも同じような状況に陥ったので、psql -E を使って調べてみました。
> 
>  どうも作成した DB の pg_catalog.pg_* に select できないことが原因の
> ようで、(pgsql の) superuser 権限で接続して、
> 
> test=# grant select on pg_catalog.pg_class,pg_catalog.pg_namespace,pg_catalog.pg_user to test;
> としてやると、少なくとも \d は動くようになりました。

kuriyamaさま、ありがとうございます。
ご指摘いただいた権限を付与することで\dを使用可能になりました。
ありがとうございました。

引き続き、検証用のテーブル作成を試みた結果、
マスタDB上では、一般ユーザ所有の表として扱われるのですが、
スレーブ側では、postgres所有となっているようです。

スレーブ側での表へのアクセスは、マスタ側で所有者自身に
GRANT ALLすることで、可能になりますので、
マスタ側での一般ユーザでの処理が、
スレーブ側のpostgresユーザとして伝播するように見えるのですが
当方の環境に不備があるなどして、
pgclusterに、何らかの設定を追加しなければ、
postgresユーザ以外での環境構築は無理なのでしょうか?


以下、動作例です。
[マスタ側]
	[test @ DBIV test]$ psql test
	Welcome to psql 7.3.4, the PostgreSQL interactive terminal.

	test=> create table table1(eno INTEGER,ename TEXT);
	CREATE TABLE
	test=> \d
	        List of relations
	 Schema |  Name  | Type  | Owner
	--------+--------+-------+-------
	 public | table1 | table | test
	(1 row)

[スレーブ側]
	[test @ DBV test]$ psql test
	Welcome to psql 7.3.4, the PostgreSQL interactive terminal.
	
	test=> \d
	         List of relations
	 Schema |  Name  | Type  |  Owner
	--------+--------+-------+----------
	 public | table1 | table | postgres
	(1 row)

	fine=> select * from table1;
	ERROR:  table1: permission denied
	ERROR:  table1: permission denied
	fine=>




pgcluster メーリングリストの案内