新規インストール後のpostgresのデフォルトのスーパーユーザーのユーザー名/パスワードは何ですか?


380

Ubuntu 9.10にpostgres 8.4をインストールしましたが、スーパーユーザーの作成を要求されたことはありません。デフォルトのスーパーユーザーとそのパスワードはありますか?そうでない場合、新しいものを作成するにはどうすればよいですか?


回答:


534

注意「$ sudo passwd postgres」を介して「postgres」のUNIXパスワードを変更することに対する回答は好ましくなく、危険ですらあります。

これが理由です。デフォルトでは、UNIXアカウント「postgres」はロックされています。つまり、パスワードを使用してログインすることはできません。「sudo passwd postgres」を使用すると、アカウントはすぐにロック解除されます。さらに悪いことに、「postgres」のような弱いパスワードを設定すると、大きなセキュリティ上の危険にさらされます。たとえば、ユーザー名/パスワードのコンボ「postgres / postgres」を使用してUNIXシステムにログインしようとするボットが多数あります。

あなたがすべきことは、クリス・ジェームズの答えに従うことです:

sudo -u postgres psql postgres

# \password postgres

Enter new password: 

少し説明します。通常、PostgreSQLサーバーにログインするには、2つのデフォルトの方法があります。

  1. UNIXユーザーとして「psql」コマンドを実行する(いわゆるIDENT / PEER認証)sudo -u postgres psql。例: 。sudo -uUNIXユーザーのロックは解除されないことに注意してください。

  2. PostgreSQL独自の管理されたユーザー名/パスワード(いわゆるTCP認証)を使用したTCP / IP接続(UNIXパスワードではない)。

したがって、UNIXアカウント「postgres」にパスワードを設定することは決してありません。デフォルトではロックされたままにします。

もちろん、デフォルトの設定とは異なる設定をすると、状況は変わる可能性があります。たとえば、PostgreSQLパスワードをUNIXパスワードと同期し、ローカルログインのみを許可できます。それはこの質問の範囲外です。


11
だから、どのようにしてユーザーpostgresをロックバックしますか?
ウルトラジョン

3
@ultrajohn -パスワードの代わりに*お使いのディストリビューションに依存しますが、あなたはetc / passwdファイルおよびput /編集することができます
lzap

3
/etc/shadowパスワードは@lzapに保存されます。
グリンゴサーブ

2
正しい方法は、/ etc / passwdに/ sbin / nologinを設定するか、/ etc / shadowにパスワードの代わりに*を入れることです。
lzap

34
passwd-ロックpostgres
ステファン

166

コマンドラインで入力します。

$ sudo -u postgres psql postgres
postgres=# \password postgres

わかるでしょ:

Enter new password: 
Enter it again:

7
これは、Postgres自体をインストールした直後にpgadminIIIなどのツールを使用するために必要です(サーバープロファイルを設定する場合)。ありがとう!
リミスト

64

次のpostgresように、ユーザーを介してpostgresを操作します。

# su - postgres
$ createdb mydb
$ psql -s mydb
# create user someuser password 'somepassword';
# GRANT ALL PRIVILEGES ON DATABASE mydb TO someuser;

5
@ThierryLam suパスワードを入力せずに、postgresユーザーのルートになる必要があります。ほとんどのシステムでは、Postgres Unixアカウントはロックされています(パスワードは機能しません)。つまり、そのアカウントに対してroot のみが許可suされます。
voretaq7

2
sudo代わりに使用しますsu
reinierpost 14

8
私は実行する必要がありましたsudo su - postgres:\
ジムシューベルト14年

3
@Jim Schubert:を実行することもできますsudo -u postgres
reinierpost 14年

1
sudo -u postgres psql-動作するため、1ステップで実行できます。
オミヌス

21

Windowsでは、以下を実行します(重要:Windows 管理者アカウントを使用します):

  1. インストール後、を開き<PostgreSQL PATH>\data\pg_hba.confます。

  2. これらの2行を変更し、「md5」を「trust」に変更します。

    host all all 127.0.0.1/32 md5

    host all all ::1/128 md5

  3. PostgreSQLサービスを再起動します(必要ない場合があります)。

  4. (オプション)コマンドプロンプトを開き、コードページを1252に変更します。

    cmd.exe /c chcp 1252

  5. PostgreSQLにログインします。非パスワードが必要になります(大文字の-Uパラメーターに注意してください):

    psql -U postgres

  6. (オプション、セキュリティ上の理由で推奨)postgresユーザーのパスワードを変更します。

    \password postgres

    そして、「trust」を「md5」に戻しpg_hba.confます。


5

PostgreSQLシェルにアクセスしようとしている場合は、次のように入力できます。

psql -U postgres my_database

my_databaseデータベース名はどこにありますか。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.