CentOS 6 (64 ビット) での PostgreSQL 9.3 の新規インストール (PostgreSQL wiki の YUM インストール マニュアルによる) では、どのユーザーにもアクセス許可が付与されません。
postgres ユーザーにログインして psql を開き、デフォルト ユーザーのロールを作成します。
CREATE ROLE <name> WITH PASSWORD '<password>';
次に、デフォルトの postgres データベースに対する権限を付与してみます。
GRANT ALL ON DATABASE postgres TO <user>;
これにより、期待される出力が得られますが、ユーザーには postgres に対する権限がありません。の出力\dp <user>
も同様に空です。追加のテストでは、ユーザーにアクセス許可を与えることができないことが示されています。ただし、これらの存在しない権限が付与されているロールを削除しようとすると、次のように表示されます
ERROR: role "<user>" cannot be dropped because some objects depend on it
DETAIL: privileges for database postgres
私は途方に暮れています。また、postgres Linux ユーザーが PostgreSQL データ ディレクトリに対して適切なファイル アクセス許可を持っていることも確認しました。