カテゴリー
コンピューター

【PostgreSQL】ログイン時にパスワードも同時に渡して認証を通すコマンドの書き方

MySQL では接続コマンドと同時にパスワードを渡してログインすることが可能です。mysql -u root -ppassword という書き方ですわね。

PostgreSQL ではどうかしら?ヘルプを見てみましても、存在しません。調べてみたところ、簡単に書ける方法がございましたので、メモいたします。

接続コマンドと同時にパスワードを渡す psql の書き方

# mysql -u root -ppassword のように 1 行で PostgreSQL にログイン
PGPASSWORD=password psql -U postgres

# おまけ。ヒアドキュメントを使って、スーパーユーザ (postgres) にパスワード設定
su - postgres <<EOT
psql -U postgres
Alter USER postgres encrypted password 'vagrant';
\q
exit
EOT

# ヒアドキュメントを使って、DB 作成
PGPASSWORD=password psql -U postgres <<EOT
CREATE USER user1 WITH NOSUPERUSER NOCREATEDB NOCREATEROLE PASSWORD 'password1';
CREATE DATABASE db1 WITH OWNER user1 ENCODING 'UTF8';
EOT

実践

# # PostgreSQL にログイン
# PGPASSWORD=password psql -U postgres
psql (8.4.20)
&quot;help&quot; でヘルプを表示します.

postgres=# \q
#
# # ヒアドキュメントを使って、スーパーユーザ (postgres) にパスワード設定
# su - postgres &lt;&lt;EOT
> psql -U postgres
> Alter USER postgres encrypted password 'vagrant';
> \q
> exit
> EOT
ALTER ROLE
#
# ヒアドキュメントを使って、DB 作成
# PGPASSWORD=password psql -U postgres &lt;&lt;EOT
> CREATE USER user1 WITH NOSUPERUSER NOCREATEDB NOCREATEROLE PASSWORD 'password1';
> CREATE DATABASE db1 WITH OWNER user1 ENCODING 'UTF8';
> EOT
CREATE ROLE
CREATE DATABASE

おわりに

次のページが参考になりました。ありがとう存じます♪

以上です。

コメントを残す