一回折れた人

日々の出来事をつらつらと

PostgreSQLでパスワードを省略する

業務でAWSのRDS上でPostgreSQLを使用しているのですが、更新作業内だけでパスワードを30回くらい聞かれるので[pgpass]を設置しました。 jenkinsおじさんと連携させればもっと楽ちんになりそう。やったね!たえちゃん

方法

ホームディレクトリに[~/.pgpass]を作成

touch ~/.pgpass

パーミッションを変更する(0600以外だと怒られる)

chmod 600 ~/.pgpass

pgpassの中身の書式は、下記の通り

パスワード以外はアスタリスクで省略できるようです。

ホスト名:ポート番号:データベース名:ユーザ名:パスワード

hoge.rds.amazonaws.com:*:*:*:hugahuga

これをRDS操作用の踏み台サーバに置いています。

注意点として、シェルスクリプトでガシガシpsqlを呼び出してDBを更新する処理を作ったのですが、 [sudo psql]などとするとパスワードが省略されるユーザーとは別のユーザーで実行することになり、パスワードを求められるので、少しハマりました。 jenkinsおじさんでまだ試してないですが、おじさんでできるようにする場合、pgpassをおじさん用に作るか、パスワードを求められないグループに加える(まだ試してない)をする必要がありそうです。

参考:psqlでパスワード入力を省略する