postgresql8.3.12,phpPgAdmin5.0という環境で一般ユーザーがデータベースを作ってスキーマを見ると

ERROR: permission denied for relation pg_authid

と言われてテーブルのリストを見ることができない。
一般ユーザがpg_authidを見ることができないのは当然だけどこれじゃ使えない。

とりあえず対策考えた。
pg_rolesというテーブルがpg_authidのほぼクローン(パスワードが隠されてる)なので、差し替えれば良い。

すなわちclasses/database/Postgres.php 867行目

LEFT JOIN pg_catalog.pg_authid pu ON (pn.nspowner = pu.oid)

これを

LEFT JOIN pg_catalog.pg_roles pu ON (pn.nspowner = pu.oid)

こうするととりあえず見ることができた。

他で問題が起きそうだけどそのときはまた考えよう。