膨張空間

開発日記を中心に、時々雑記を投稿します。よろしく

【Alibaba】RDS for PPASでPostgresSQLの拡張機能を追加する方法

数時間単位ではまったので記録しておく。前にDB作成した時もはまったなこれ…

PostgresSQLには拡張機能が用意されている。通常はSuperUser権限を持ったアカウントで以下のコマンドを実行すると追加できる。

--SuperUserで実行する
create extension dblink
;
create extension pgcrypto
;

RDS for PPAS上のPostgresSQLにも、上記のSQLで追加したいところだが、 RDS for PPASにはSuperUser権限を持ったアカウントを作成することができない。

そのためコマンドを実行してもSuperUser権限持ってから出直してこい的なメッセージで弾かれてしまう。

詳しくは公式サイトを確認して欲しい。(このサイトもなかなか見つけにくいよ…)

RDS for PPASでは拡張機能を追加するための 共通管理関数 という関数で一般権限でも拡張機能を追加することができる 上記のコマンドは以下のように書く

-- create:追加する dblink:追加するオプション名 hoge:database名
select rds_manage_extension('create','dblink','hoge')
:
select rds_manage_extension('create','pgcrypto','hoge')
;

この関数の存在を忘れて何とかSuperUser権限を持ったユーザーが作成できないか。 それともログインパスワードを忘れただけなのかで数時間つぶしてしまった。