psql実行時にパスワードを省略する方法

psql-password-no postgreSQL

psqlコマンドでPostgreSQLに接続し、SQLを実行するとき、パスワードを入力する必要となっていますが、Shellでpsqlコマンドを実行するとき、パスワードを入力せず、実行したい場合、以下の方法をまとめました。

.pgpassに入れる方法①

.bash_profileや.bashrcと同じホームディレクトリに.pgpassファイルを追加したら、パスワードを省略できます。※.pgpassの置き場所変更は環境変数:PGPASSFILEにて設定可能です。

.pgpassに記入内容:

ホスト名:ポート:データベース:ユーザ:パスワード
例)17.12.12.**:5432:dbname:postgres:password
.pgpassの権限は600にする必要がある。600以外の場合は警告が表示され、パスワード入力画面が求められます。

環境変数に入れる方法②

パスワードの環境変数

環境変数にパスワードを入れることによって、パスワードを省略できます。
記述内容:

#PostgreSQLのパスワードを環境変数に挿入
export PGPASSWORD=password

他の環境変数について

#ホスト名
export PGHOST=ホスト名
 
#ポート
export PGPORT=5432
 
#DB名
export PGDATABASE=postgres
 
#ユーザ
export PGUSER=postgres
 
#パスワード
export PGPASSWORD=password
 
#パスワードファイル格納先
export PGPASSFILE=~/.pgpass

まとめ

  • .pgpass
    • PostgreSQLで推奨されている。
    • ホームディレクトリに置く為使用するユーザに限られる。
    • psqlに接続する設定ファイルが必要です。
  • 環境変数
    • PostgreSQLでは非推奨
    • ホームディレクトリがないユーザでも使用できる。
    • 使用されたくないユーザにもパスワードが分かれる。
タイトルとURLをコピーしました