alf58さんの投稿一覧
解釈の誤りだと思います。
「データベースクラスタは、PostgreSQLサーバ(プロセス群やサービス)と1対1で対応します。ですから、複数のサーバで1つのデータベースクラスタを分散管理することはできません。
こちらは「PostgreSQLサーバ(プロセス群やサービス)」なので、pg_ctl start で起動したプロセス群のことを説明しています。
「pg_ctlで起動したPostgreSQLサーバとデータベースクラスタは1対1」という説明です。
「PostgreSQLは1台のマシンに複数インストールすることも、1つのPostgreSQLインストールに複数のデータベースクラスタを作成することもできます。」
こちらは「PostgreSQLインストール」なので、ソフトウェアの説明をしています。
「1台のマシンに複数のPostgreSQLをインストールすることができる。1つだけインストールして複数のデータベースクラスタ作成することもできる(クラスタの数だけインストールする必要はない)」という説明です。
解説でLOGINのことを「データベースへ接続する権限」と説明されていますが、データベースに接続する権限はCONNECTであり、LOGINはログイン可能かではないでしょうか。
試しにPUBLICロールからCONNECT権限をREVOKEした状態で選択肢にあるコマンドでユーザを作成しましたが、下記のようにログインはできてもデータベースに接続することはできませんでした。
Y:\postgres>psql -U test -W test
パスワード:
psql: FATAL: データベース"test"へのアクセスが拒否されました
DETAIL: ユーザはCONNECT権限を持ちません。
LOGIN権限がない場合のエラーは下記であり、LOGINとCONNECTは明確に区別されている認識です。
Y:\postgres>psql -U test -W postgres
パスワード:
psql: FATAL: ロール"test"はログインすることが許されていません
問題が暗黙に「PUBLICロールにデータベースに接続する権限がある」ことを前提としており、設問が不適切ではないかと感じます。
問題文に「「city」テーブルでは、自動コミットがONになっている。」とありますが、テーブルの設定に自動コミットのON/OFFがあるのでしょうか?
調べてもテーブルの設定に自動コミットがあるというような情報は見つかりませんでした。