createuser - Postgres のユーザを作ります
createuser [ -a system][ -h host][ -p port][username]
createuserは新規の Postgres ユーザを作ります。"pg_shadow"クラスに"usesuper"がセットされたユーザのみが新しい Postgres ユーザを作ることができます。配布された状態では、ユーザ"postgres"がユーザを作ることができます。
createuserはpsqlを呼び出すシェルスクリプトです。ですから、createuserを実行する前にpostmasterプロセスがデータベースサーバのホストで走っていなくてはなりません。加えて、環境変数 PGOPTION と PGREALM がpsqlに渡され、psql(1) で説明されるように扱われます。
オプション引数のusernameは作成する Postgres のユーザの名前を指定します。(コマンドラインで何も指定されなければ、名前を指定するプロンプトが表示されます。)この名前はすべての Postgres ユーザの中で、使われていないものでなくてはなりません。
createuserは次のコマンドラインオプションを取ることができます:
postmasterプロセスとの接続に使う認証システムsystemを指定します。(pgintro(1) を参照してください)このオプションはもう何の効果もありません。
postmasterが走っているマシンのホスト名を指定します。デフォルトではローカルの Unix ドメインソケットを使います。
postmasterが接続を待っているTCP/IP ポートまたはローカルの Unix ドメインソケットのファイル拡張子を指定します。デフォルトでは 5432 、あるいは(セットされていれば)環境変数 PGPORT の値となります。
上記のオプションを付けて呼び出されると、createuserは一連の質問を訊いてきます。新規ユーザのログイン名(コマンドラインで与えられなければ)と、ユーザID は指定されなくてはなりません。( Postgres のユーザID はそのユーザの Unix のユーザID と同じでなくてはなりません。)加えて、その新規のユーザのセキュリティ能力を説明しなくてはなりません。具体的には、その新規ユーザが Postgres のスーパーユーザとして扱われるかどうか、新規データベースを作れるかどうか、また手動でシステムカタログを更新できるかどうかを訊かれることになります。
createuserは指定されたホストとポートでpostmasterプロセスに接続することができませんでした。もしこのメッセージを見たら、postmasterが適切なホストと指定した適切なポートで走っているかどうか確認してください。もしサイトが認証システムを使っているなら、必要な認証証明書を手に入れたかどうか確認してください。
"pg_shadow" に有効なエントリがありませんので、Postgres では何もできません。Postgres のサイト管理者に連絡を取ってください。
ユーザを削除する権限が与えられていません。Postgres のサイト管理者に連絡を取ってください。
追加されるユーザは既に "pg_shadow" クラスにエントリがあります。
psqlもしくはバックエンドサーバの内部エラーが起こりました。Postgres のサイト管理者が適切に Postgres のインストールとinitdbでのサイトの初期化をしたかどうか確認してください。
Postgres のユーザID とユーザ名は Unix の制約と関係ないものであるべきです。