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