"unrecognized privilege: 39" Amazon RDS for PostgreSQL

Amazon RDS for PostgreSQLを利用してエラーにハマったのでメモ。

psqlから発行したSQLは次のとおり。

select * from information_schema.columns;

すると次のエラーが発生。

"unrecognized privilege: 39"

Amazon RDSでDBインスタンスのバージョンは10.4

結論

Amazon RDS for PostgreSQL10.4のバグ(あるいは意図された仕様?)っぽい。

確認したこと

  • Amazon RDS上のPostgreSQL10.4で発生する
  • 自PCにインストールしたPostgreSQL10.4では再現しない
  • Amazon RDS上のPostgreSQL10.1では再現しない

対処方法

RDSのインスタンスをPostgreSQL10.1にバージョンダウン

(対処方法と言ってよいのか…)

詳細

どうも、information_schema.columnsビューだけが開けない。information_schemaの他のビューはいくつか確認することができた(具体的なビュー名は忘れてしまった)

権限周りの設定を誤ったかと思いあれやこれや調べたものの、RDS上のマスターユーザでも発生していてAWS特有の事象なんじゃないかなあと思ったら出てきたのが下記のAWSフォーラムのやり取り。

https://forums.aws.amazon.com/thread.jspa?messageID=860564&tstart=0

冒頭に書いたようなことが大体書いてある。 ただ、半年前くらいから発生している事象のようなので、もしかしたらパラメータ変更したりすれば対処できるんじゃないかという気もする。(AWSが意図して初期設定では見られないようにしている可能性)

色々とインターネットの海を潜ってみたもののAWSのコメントは特に確認できず。正しい(バージョンダウンではない)対処方法をご存知の方がいましたらご教授願いたいです。

いずれにせよ、AWS for PostgreSQL10.4を利用する予定がある方は、information_schema.columnsにご注意をば。