SQL
PostgreSQLのパスワード
2018年10月21日
SQLデータベースの文字コードを変更するため、新しい文字コードUTF-8でデータベースを作って全移動しています。
データベースが変わるので、cronで動かしているバックアップ(ダンプ)やバキューム(最適化)を変更しなくてはいけません。
cronから実行する場合、パスワードを入力できないので、【.pgpass】にIDやパスワード記録して、そこから読み込んで使います。
ホスト名:ポート番号:データベース名:ユーザ名:パスワード
を【.pgpass】に保存してホームディレクトリにアップロード、パーミッションを600にします。
これでcronからバックアップや最適化が可能になります。
副産物で、タームミナルエディタから接続する時も、PHPなどのソースでもパスワードを入力しなくてよくなります。
【.pgpass】には複数のデータベースのパスワードを保存できます。
【*】も使用可能です。どれでもOKの時は使用します。
PostgreSQL 9.3.2文書 - パスワードファイル
例1
*:*:db01:user1:pass1
*:*:db02:user1:pass2
例2
*:*:*:*:pass3
パスワードは平文で保存されますが、パーミッションが600ですし、大丈夫ということなんでしょう。でもファイルが流出したら困りますよね。
データベースが変わるので、cronで動かしているバックアップ(ダンプ)やバキューム(最適化)を変更しなくてはいけません。
cronから実行する場合、パスワードを入力できないので、【.pgpass】にIDやパスワード記録して、そこから読み込んで使います。
ホスト名:ポート番号:データベース名:ユーザ名:パスワード
を【.pgpass】に保存してホームディレクトリにアップロード、パーミッションを600にします。
これでcronからバックアップや最適化が可能になります。
副産物で、タームミナルエディタから接続する時も、PHPなどのソースでもパスワードを入力しなくてよくなります。
【.pgpass】には複数のデータベースのパスワードを保存できます。
【*】も使用可能です。どれでもOKの時は使用します。
PostgreSQL 9.3.2文書 - パスワードファイル
例1
*:*:db01:user1:pass1
*:*:db02:user1:pass2
例2
*:*:*:*:pass3
パスワードは平文で保存されますが、パーミッションが600ですし、大丈夫ということなんでしょう。でもファイルが流出したら困りますよね。
コメント