web-dev-qa-db-ja.com

PostgreSQLのユーザパスワードを変更するにはどうすればいいですか?

PostgreSQLユーザのパスワードを変更するにはどうすればいいですか?

738
Saad

パスワードなしのログインの場合:

Sudo -u user_name psql db_name

忘れた場合にパスワードをリセットするには:

ALTER USER user_name WITH PASSWORD 'new_password';
1068
solaimuruganv

次に入力します。

$ 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
511
Clint Bugs

ユーザーのパスワードを暗号化することができます。

ALTER USER username WITH ENCRYPTED PASSWORD 'password';
70
yglodt

パスワードを変更する最善の方法は、単に使用することです。

\password

postgresコンソールで.

ソース:

このコマンドで暗号化されていないパスワードを指定するときは注意が必要です。パスワードは平文でサーバーに送信され、クライアントのコマンド履歴またはサーバーログに記録されることもあります。 psqlには、平文のパスワードを公開せずにロールのパスワードを変更するために使用できるコマンド\ passwordが含まれています。

https://www.postgresql.org/docs/9.0/static/sql-alterrole.html から。

34
Viktor Nordling

Linuxのコマンドラインを使用してパスワードを変更するには、次のコマンドを使用します。

Sudo -u <user_name> psql -c "ALTER USER <user_name> PASSWORD '<new_password>';"
28
Vajira Lasantha

あなたの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

新しいパスワードで。

問題が見つかった場合はお知らせください。

20

私のサーバーで得られた設定は非常にカスタマイズされていて、 pg_hba.confファイルに trust authenticationを設定した後にのみパスワードを変更することができました

local   all   all   trust

これをパスワードまたはmd5に戻すことを忘れないでください

8
ruruskyi

これは、私がユーザーの名前を変更する方法を探していたときの、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>;
8
Salvador Dali

postgres userの新しいパスワードを要求するには(コマンドに表示せずに):

Sudo -u postgres psql -c "\password"
7
Nicolau

私の場合は、postgres 10.3をインストールしたUbuntu 14.04です。次の手順に従う必要があります

  • ユーザーをpostgresに切り替えるためのsu - postgres
  • 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を入力してください。それはパスワードであなたを促します。
5
haxpor

パスワードを変更するには

 Sudo -u postgres psql

それから

\password postgres

新しいパスワードを入力して確認します

\qで終了します

5
Akitha_MJ

これを使って:

\password

そのユーザーに必要な新しいパスワードを入力して確認します。パスワードを覚えていなくて変更したい場合は、postgresとしてログインしてからこれを使用できます。

ALTER USER 'the username' WITH PASSWORD 'the new password';
2
Dexios1

構文の他の回答と同様ですが、プレーンテキストパスワードを送信しないように、パスワードのmd5を渡すこともできます。

プレーンテキストでユーザーパスワードを変更すると、意図しない結果が生じるシナリオをいくつか示します。

  1. SSLがなく、リモートで変更している場合、プレーンテキストパスワードをネットワーク経由で送信しています。
  2. DDLステートメントlog_statement = ddl以上を記録するようにロギング構成を設定している場合、プレーンテキストパスワードがエラーログに表示されます。
    1. これらのログを保護していない場合、問題があります。
    2. これらのログ/ ETLを収集し、他のユーザーがアクセスできる場所に表示すると、このパスワードなどが表示される可能性があります。
    3. ユーザーにパスワードの管理を許可した場合、ユーザーは知らないうちにログの確認を担当する管理者または低レベルの従業員にパスワードを公開しています。

ここで、パスワードのmd5を作成してユーザーのパスワードを変更する方法を説明します。

  • Postgresはパスワードをmd5としてハッシュし、パスワードをユーザー名でソルトし、結果のハッシュにテキスト「md5」を付加します。
  • 例: "md5" + md5(パスワード+ユーザー名)

  • Bashの場合:

    ~$ echo -n "passwordStringUserName" | md5sum | awk '{print "md5"$1}'
    md5d6a35858d61d85e4a82ab1fb044aba9d
  • PowerShellの場合:
    [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';
  • 関連リンク(注:古いバージョンのドキュメントの最新バージョンにのみリンクしますが、一部変更されますが、md5は引き続きサポートされています。)
  • 役割の作成
  • パスワードは常に暗号化されてシステムカタログに保存されます。 ENCRYPTEDキーワードは効果がありませんが、後方互換性のために受け入れられます。暗号化の方法は、構成パラメーターpassword_encryptionによって決定されます。提示されたパスワード文字列がすでにMD5暗号化またはSCRAM暗号化形式である場合、password_encryptionに関係なくそのまま保存されます(システムは指定された暗号化パスワード文字列を復号化できないため、異なる形式で暗号化できます)。これにより、ダンプ/復元中に暗号化されたパスワードを再ロードできます。

  • password_encryption の構成設定
  • postgresパスワード認証ドキュメント
  • postgresパスワードmd5の構築
0
jkdba