2

ERP システムの DB サーバーとして PostgreSQL 8.3 を実行しています。これまでのところ、postgres で異なるユーザー (8.3 でいうロール) の下に異なるデータベースを作成する必要はありませんでした。そして今、それが現れました。

質問 1: スーパーユーザー権限を持たないユーザーは、自分が所有するデータベースに対してのみ読み取り/書き込みができるというのは正しいですか (ユーザーが CREATEDB 権限を持っていると仮定して)?

psql -l質問 2:コマンドを使用してすべてのデータベースのリストをユーザーに対して無効にするにはどうすればよいですか? 最初の質問に対する答えが「はい」の場合でも、このリストは任意のユーザーが利用できます。

ありがとうございました。

4

4 に答える 4

3

おそらく物事を壊さずにpsql-lをオフにする方法はありません。pg_hba.confのsameuser構成オプションを使用して、ユーザーが自分のデータベースにのみ接続できるようにすることができます。

于 2011-02-14T07:00:14.077 に答える
2

Q1: いいえ。これはすべて、さまざまなレベルの特権によって制御されます。テーブルに書き込むには、そのテーブルに対する権限などが必要です。データベース レベルでの唯一の権限 (デフォルトで所有者が持つ権限) は、スキーマと一時テーブルを作成する機能です。それはおそらくあなたが考えていたものではありません。おそらくそのように設定できますが、デフォルトまたは通常の設定とはかけ離れています。

SELECTQ2: の権限を取り消すことができpg_databaseます。しかし、それを行うと、実際にはサポートされませんでした。本当に必要かどうか、もう一度考えてみることをお勧めします。

于 2011-02-13T14:33:41.367 に答える
2

re 1) はい、そうです

re 2)を使用して実行できると思いますが、revoke select on pg_database from publicどのような副作用があるかわかりません。

編集
この議論はあなたにとって興味深いかもしれません:
http://www.mail-archive.com/pgsql-general@postgresql.org/msg64005.html

于 2011-02-13T14:28:26.100 に答える