が作成されます。
- 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を "サービスアカウント"にすることもできます。
@Catcall:私がinitdbを実行したとき、私は_mayank_としてログインしていました。私はユーザーの_mayank_によってDBインスタンスを管理し、postgresでは管理しません。今私がcreatedbをするなら、それは私のためのdbを作成すべきです。これは私の理解です。私が間違っているなら、私を修正してください! – Mayank
@Catcall:createdbは、OSユーザーのパスワードについて何も知らない。だから、尋ねることができる唯一の可能なパスワードは、* postgres *ユーザのパスワードです。 –
@Mayank:明らかにあなたは* postgres *のための* mayank *のパスワードを提供しなければなりません* –