web-dev-qa-db-ja.com

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

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

402
Thierry Lam

[〜#〜]注意[〜#〜] "postgres"の "$ Sudo passwd postgres"によるUNIXパスワードの変更に関する回答は推奨されておらず、[〜 #〜]危険[〜#〜]

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

あなたがすべきことはChris Jamesの答えに従います:

Sudo -u postgres psql postgres

# \password postgres

Enter new password: 

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

  1. 「psql」コマンドをUNIXユーザーとして実行する(いわゆるIDENT/PEER認証)。例:Sudo -u postgres psql。ご了承ください Sudo -uはUNIXユーザーのロックを解除しません。

  2. postgreSQL独自の管理されたユーザー名/パスワードを使用したTCP/IP接続による(いわゆるTCP認証)(つまり[〜#〜] not [〜#〜] UNIXパスワード)。

したがって、決してUNIXアカウント「postgres」のパスワードを設定する必要はありません。デフォルトではそのままにしておいてください。

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

546
user716468

コマンドラインに次のように入力します。

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

わかるでしょ:

Enter new password: 
Enter it again:
170
dcrawkstar

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

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

Windowsでは、以下を実行します(重要:Windows administratorアカウントを使用してください):

  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

    pg_hba.confの「trust」を「md5」に戻します。

21
M.S. Dousti

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

psql -U postgres my_database

どこ my_databaseはデータベース名です。

5