2011-05-23 9 views
3

私はユーザアカウントmayankを持っています。 initdbを使って新しいクラスタを作成しました。
私はPGDATA=C:\pgdataです。今度は新しいデータベースを作成したいと思います。Win32のPosgreSql:postgresパスワード

私がcreatedb db_testをすると、パスワードを尋ねます。そこに必要なパスワードは何ですか?

私は(ダブルクリックして:-)をインストール)は、Windowsインストーラを使用してPostgreSQLのインストールpg_hba.confの中に次のエントリに

# IPv4 local connections: 
host all    all    127.0.0.1/32   trust 
# IPv6 local connections: 
host all    all    ::1/128     trust 

を持っています。

答えて

3

が作成されます。

  • Windowsアカウントと "サービスアカウント"
  • のPostgreSQL(データベース)スーパーユーザの役割

デフォルト(1つはpostgresql.exeプロセスを所有しています)両方のアカウントの名前は(伝統的に)postgresです。インストール後は、net userコマンドを使用して、新しく作成したWindowsアカウントを確認することができます。

net user   postgres 
User name   postgres 
Full name   postgres 
Comment    PostgreSQL service account 
... 
Active    Yes 
Password required Yes 
... 

あなたはスーパーユーザアカウントを使用して初期のいずれかのデータベースに接続し、デフォルトのクラスタ内のクラスタに定義されたすべてのロールをチェックするためにpsqlを使用することができます。

postgres=# \du 
         List of roles 
Role name |   Attributes    | Member of 
-----------+-----------------------------------+----------- 
postgres | Superuser, Create role, Create DB | {} 

スーパーユーザーのmayank(およびクラスタ所有者mayank)として新しいデータベースクラスタを作成したい場合は、(すでにPATHでのPostgreSQL \バージョン\ビンを持っているとあなたがmayankとしてログインしていると仮定して)使用することができます。

cmd>initdb -U mayank -D C:\pgdata 
cmd>pg_ctl -D C:\pgdata -o "-p 5440" -l C:\pgdata\log start 
cmd>createdb -p 5440 test 

パスワードの入力を求めずに、うまく動作します。私はちょうどC:\pgdata\pg_hba.confをチェックし、実際にそれが含まれています

# TYPE DATABASE  USER   CIDR-ADDRESS   METHOD 

# IPv4 local connections: 
host all    all    127.0.0.1/32   trust 
# IPv6 local connections: 
host all    all    ::1/128     trust 
もだ

が、マルチユーザー環境では安全ではありません。 pg_ctl registerを使ってpostmasterをWindowsサービス(デフォルトの5432 DBクラスタのように)することができるので、mayankを "サービスアカウント"にすることもできます。

1

IIRCでは、Windowsインストーラは2人の「ユーザー」を作成します.1人はPostgreSQLサービスアカウントで、通常は次のようなランダムな文字列が含まれています。パスワード。他には、Windowsのコントロールパネルのアプレット。

二つの最も可能性の高い可能性を「ユーザーアカウント」。。。

  1. あなたがいないよに表示されるユーザー「postgresの」、ですWindowsユーザー "postgres"のための正しいパスワードを取得しています。

  2. 実際には、Windowsネットワークのユーザ名であるPostgreSQLのデフォルトログインを使用してデータベースを作成しようとしています。

には、必要なユーザー名を指定できる-Uオプションがあります。 One-Click Installer二つの異なるものを使用して

+0

@Catcall:私がinitdbを実行したとき、私は_mayank_としてログインしていました。私はユーザーの_mayank_によってDBインスタンスを管理し、postgresでは管理しません。今私がcreatedbをするなら、それは私のためのdbを作成すべきです。これは私の理解です。私が間違っているなら、私を修正してください! – Mayank

+0

@Catcall:createdbは、OSユーザーのパスワードについて何も知らない。だから、尋ねることができる唯一の可能なパスワードは、* postgres *ユーザのパスワードです。 –

+0

@Mayank:明らかにあなたは* postgres *のための* mayank *のパスワードを提供しなければなりません* –