createuser

Name

createuser  --  新規 Postgres ユーザを作成する

Synopsis

createuser [ username ]
createuser [ -h host ] 
    [ -p port ]
    [ -i userid ] 
    [ -d | -D ] [ -u | -U ]
    [ username ]
  

入力

-h host

postmaster が起動しているマシンの ホスト名を定義します。デフォルトは、IP 接続ではなく、 ローカル Unix ドメインソケットを使います。

-p port

postmaster が接続の為に監視する インターネット TCP/IP ポート、あるいはローカル Unix ドメイン ソケットファイル拡張子を定義します。デフォルトポートは 5432 、あるいは (もし、設定されている場合は) 環境変数 PGPORT の値です。

-d

このユーザにデータベースを作ることを許します。

-D

このユーザにデータベースを作ることを禁止します。

-i userid

ユーザに関連付けされる数値型の識別子 (ID) を定義します。 この識別子は Postgres の全ての ユーザに対し一意でなければなりません。また、これは オペレーティングシステムの UID と一致する必要は有りません。 識別子をコマンドラインで定義しなかった場合、UID と同じ識別子 の使用を促されます。

-u

このユーザに他のユーザを作ることを許します。

-U

このユーザに他のユーザを作ることを禁止します。

username

登録する Postgres ユーザの名前を 定義します。 このユーザ名は Postgres の全ての ユーザに対し一意でなければいけません。 ユーザ名をコマンドラインで定義しなかった場合、後からユーザ名 の入力を促されます。

出力

createuser は、 pg_user 、または pg_shadow といったシステムテーブルに 登録を加えます。

Connection to database 'template1' failed. connectDB() failed: Is the postmaster running and accepting connections at 'UNIX Socket' on port 'port'? createuser: database access failed.

createuser が指定されたホストと ポート上の postmaster プロセスに 接続することができませんでした。もしこのメッセージが表示さ れた場合、postmaster が正しいホ スト上で動作していることと、正しいポートを指定したことを 確認してください。もしサイトが認証システムを使っている場合、 必要な認証資格を受けていることを確認してください。

Connection to database 'template1' failed. FATAL 1: SetUserId: user 'username' is not in 'pg_shadow' createuser: database access failed.

pg_shadow 表に有効な登録が無く、 そして Postgres にアクセス することを許されていません。 Postgres の管理者に連絡して ください。

createuser: username cannot create users.

新規ユーザを作る権利を持っていません; Postgres のサイト管理者に連絡して ください。

createuser: user "username" already exists

登録しようとしているユーザは既に pg_shadow クラスに登録されています。

database access failed

psql 内か、あるいはバックエンド サーバ内で内部エラーが発生しました。サイト管理者が正しく Postgres をインストールし、 initdb を使って初期化したか確認 してください。

Note: createuser は、内部的には psql で template1 データベースに接続している 間に、CREATE USER を動かします。 (訳注: v6.5.3 では、pg_shadow テーブルに新しいユーザの エントリを直接挿入しているようです。v7.0 では、SQL の CREATE USER を使用しています。)

説明

createuser は、新規 Postgres ユーザを作成します。 pg_shadow クラスに usesuper がセットされているユーザだけが 新規 Postgres ユーザを作成できます。 出荷時点では、postgres というユーザが ユーザを作成できます。

createuser は、 psql を呼び出すシェルスクリプトです。 その為、postmaster プロセスが、 createuser の実行以前に、 データベースサーバのホスト上で起動していなければなりません。 PGOPTION と PGREALM という 環境変数が、psql に渡され、そして 実行されます。詳細は、 psql で説明されて います。

createuser が一度呼び出されると、 コマンドライン上に指定されなかったパラメータを得るために 一連の質問をします。 新規ユーザのデータベースログイン名と数値型のユーザ識別子は 必ず指定しなければいけません。

Note: Postgres のユーザ識別子と、 ユーザの Unix UID と同じである必要は有りませんが、 一般的にはそれらは同じ物が割り当てられます。

さらに、セキュリティ目的のために新規ユーザの権限を記述 しなくてはなりません。 明確に言えば、新規ユーザが Postgres のスーパーユーザを務めるべきかどうか、新しいデータベースを 作ってもよいかどうか、そして他の新規ユーザを作ることを許される べきかどうかが尋ねられます。