[PostgreSQL] ERROR: must be owner of extension plpgsql

Tadashi Shigeoka ·  Thu, September 13, 2012

PostgreSQL 8.0.4 から 9.1.5 にDBの移行作業で、pg_dump したデータをインポートしたら下記のようなエラーが発生しました。

CREATE EXTENSION
ERROR:  must be owner of extension plpgsql

WARNING:  no privileges could be revoked for "public"
WARNING:  no privileges were granted for "public"

DB を操作しているユーザに「スーパーユーザ」の権限を追加することで解決しました。

■ スーパーユーザ権限を追加する

postgres=# \\du
                                         ロール一覧
 ロール名 |                                 属性                                 | メンバー 
----------+----------------------------------------------------------------------+----------
 newuser   | DBを作成できる                                                       | {}
 postgres | スーパーユーザ, ロールを作成できる, DBを作成できる, レプリケーション | {}

postgres=# ALTER USER newuser CREATEUSER ;
ALTER ROLE

postgres=# \\du
                                         ロール一覧
 ロール名 |                                 属性                                 | メンバー 
----------+----------------------------------------------------------------------+----------
 newuser   | スーパーユーザ, DBを作成できる                                       | {}
 postgres | スーパーユーザ, ロールを作成できる, DBを作成できる, レプリケーション | {}

以上です。

【参考】

トリガーやファンクションのリストアが失敗していた。 - マンドクセェメモ はてなブックマーク - トリガーやファンクションのリストアが失敗していた。 - マンドクセェメモ

CREATE EXTENSION はてなブックマーク - CREATE EXTENSION