PostgreSQLユーザのパスワードを変更するにはどうすればいいですか?
パスワードなしのログインの場合:
Sudo -u user_name psql db_name
忘れた場合にパスワードをリセットするには:
ALTER USER user_name WITH PASSWORD 'new_password';
次に入力します。
$ Sudo -u postgres psql
その後:
\password postgres
次にpsql
を終了します。
\q
それでもうまくいかない場合は、認証を再設定してください。
/etc/postgresql/9.1/main/pg_hba.conf
を編集し(パスは異なります)、次のように変更します。
local all all peer
に:
local all all md5
その後、サーバーを再起動します。
$ Sudo service postgresql restart
ユーザーのパスワードを暗号化することができます。
ALTER USER username WITH ENCRYPTED PASSWORD 'password';
パスワードを変更する最善の方法は、単に使用することです。
\password
postgresコンソールで.
ソース:
このコマンドで暗号化されていないパスワードを指定するときは注意が必要です。パスワードは平文でサーバーに送信され、クライアントのコマンド履歴またはサーバーログに記録されることもあります。 psqlには、平文のパスワードを公開せずにロールのパスワードを変更するために使用できるコマンド\ passwordが含まれています。
https://www.postgresql.org/docs/9.0/static/sql-alterrole.html から。
Linuxのコマンドラインを使用してパスワードを変更するには、次のコマンドを使用します。
Sudo -u <user_name> psql -c "ALTER USER <user_name> PASSWORD '<new_password>';"
あなたのPostgresql設定に行き、pg_hba.confを編集してください。
Sudo vim /etc/postgresql/9.3/main/pg_hba.conf
その後、この行を変更してください。
Database administrative login by Unix domain socket
local all postgres md5
に:
Database administrative login by Unix domain socket
local all postgres peer
そしてSudoコマンドでPostgreSQLサービスを再起動します。
psql -U postgres
これで入力され、Postgresql端末が見えます。
それから入る
\password
そして、Postgresのデフォルトユーザ用の新しいパスワードを入力し、再度パスワードを変更したらpg_hba.confに行き、変更を "md5"に戻します。
今、あなたはとしてログインします。
psql -U postgres
新しいパスワードで。
問題が見つかった場合はお知らせください。
私のサーバーで得られた設定は非常にカスタマイズされていて、 pg_hba.conf
ファイルに trust authenticationを設定した後にのみパスワードを変更することができました :
local all all trust
これをパスワードまたはmd5に戻すことを忘れないでください
これは、私がユーザーの名前を変更する方法を探していたときの、Googleでの最初の結果でした。
ALTER USER <username> WITH PASSWORD '<new_password>'; -- change password
ALTER USER <old_username> RENAME TO <new_username>; -- rename user
ユーザー管理に役立つその他のコマンド
CREATE USER <username> PASSWORD '<password>' IN GROUP <group>;
DROP USER <username>;
ユーザーを別のグループに移動する
ALTER GROUP <old_group> DROP USER <username>;
ALTER GROUP <new_group> ADD USER <username>;
postgres userの新しいパスワードを要求するには(コマンドに表示せずに):
Sudo -u postgres psql -c "\password"
私の場合は、postgres 10.3をインストールしたUbuntu 14.04です。次の手順に従う必要があります
postgres
に切り替えるためのsu - postgres
psql
\password
そしてパスワードを入力してください\q
その後、exit
を実行してrootに戻り、次の行があることを確認してpg_hba.conf
を設定します(私のものは/etc/postgresql/10/main/pg_hba.conf
にあります)。
local all postgres md5
service postgresql restart
であなたのpostgresサービスを再開してくださいpostgres
ユーザーに切り替えて、もう一度postgres Shellを入力してください。それはパスワードであなたを促します。パスワードを変更するには
Sudo -u postgres psql
それから
\password postgres
新しいパスワードを入力して確認します
\q
で終了します
これを使って:
\password
そのユーザーに必要な新しいパスワードを入力して確認します。パスワードを覚えていなくて変更したい場合は、postgresとしてログインしてからこれを使用できます。
ALTER USER 'the username' WITH PASSWORD 'the new password';
構文の他の回答と同様ですが、プレーンテキストパスワードを送信しないように、パスワードのmd5を渡すこともできます。
プレーンテキストでユーザーパスワードを変更すると、意図しない結果が生じるシナリオをいくつか示します。
log_statement = ddl
以上を記録するようにロギング構成を設定している場合、プレーンテキストパスワードがエラーログに表示されます。ここで、パスワードのmd5を作成してユーザーのパスワードを変更する方法を説明します。
例: "md5" + md5(パスワード+ユーザー名)
Bashの場合:
~$ echo -n "passwordStringUserName" | md5sum | awk '{print "md5"$1}'
md5d6a35858d61d85e4a82ab1fb044aba9d
[PSCredential] $Credential = Get-Credential
$StringBuilder = New-Object System.Text.StringBuilder
$null = $StringBuilder.Append('md5');
[System.Security.Cryptography.HashAlgorithm]::Create('md5').ComputeHash([System.Text.Encoding]::ASCII.GetBytes(((ConvertFrom-SecureStringToPlainText -SecureString $Credential.Password) + $Credential.UserName))) | ForEach-Object {
$null = $StringBuilder.Append($_.ToString("x2"))
}
$StringBuilder.ToString();
## OUTPUT
md5d6a35858d61d85e4a82ab1fb044aba9d
ALTER USER
コマンドは次のようになります。 ALTER USER UserName WITH PASSWORD 'md5d6a35858d61d85e4a82ab1fb044aba9d';
パスワードは常に暗号化されてシステムカタログに保存されます。 ENCRYPTEDキーワードは効果がありませんが、後方互換性のために受け入れられます。暗号化の方法は、構成パラメーターpassword_encryptionによって決定されます。提示されたパスワード文字列がすでにMD5暗号化またはSCRAM暗号化形式である場合、password_encryptionに関係なくそのまま保存されます(システムは指定された暗号化パスワード文字列を復号化できないため、異なる形式で暗号化できます)。これにより、ダンプ/復元中に暗号化されたパスワードを再ロードできます。