[PostgreSQL] psql のパスワード認証を省略する方法

0
3015
views

psql でデータベースを接続する時、デフォルト設定では毎回パスワードを聞かれ、都度、パスワードを入力する必要があります。

開発時にこの作業って、正直面倒くさいですよね。というわけで、パスワード入力の省略設定をしてみます。

パスワード格納ファイルの設定

方法は、PostgreSQL のパスワード格納ファイルを設定する方法です。PostgreSQL 公式マニュアルの下記該当ページに、方法の詳細が記載されています。

パスワードファイルを置く場所

次の場所に pgpass.conf というテキストファイルを作ります。

%APPDATA%\postgresql\pgpass.conf

%APPDATA% は Microsoft Windows 環境変数パスで通常、[C:\Users\<ユーザ名>\AppData\Roaming] がその場所(絶対パス)にあたります。ということはつまり、通常は下記の絶対パスにパスワード格納ファイルを作るわけです。

C:\Users\<ユーザ名>\AppData\Roaming\postgresql\pgpass.conf

pgpass.conf 内の記述方法

パスワード格納ファイルへの記述書式は次の通りです。

hostname:port:database:username:password

pgpass.conf の記述例

データベース別、ユーザ別で1ファイル内に何行記入しても構いません。行頭に [ # ](シャープ記号) を記載すると、その行はコメント扱いとなります。

#hostname:port:database:username:password
localhost:5432:postgres:postgres:postgres
localhost:5432:foodshop:foodshopmaster:life4cookinG

接続データベースに関する5つの情報をコロンで区切って記載する形です。

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

設定後のコマンド実行例

pgpass.conf を記入・設置した後に psql コマンドを実行すると次のように、パスワード認証入力が省略されます。

注意点

pgpass.conf ファイルは、UTF-8(BOM無し)で保存・作成してください。文字コードが合っていないと、このパスワード格納ファイルの記述内容が無視されてしまいます(正確には、データとして記述内容が崩れてしまっています)。