■
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)
こうするととりあえず見ることができた。
他で問題が起きそうだけどそのときはまた考えよう。