createuser [options...] [username]
postmaster が動いている マシンのホスト名を指定します。もしホストがスラッシュ で始まる場合、Unix ドメインソケットのディレクトリ として使われます。
postmaster が接続を監視 しているインターネット TCP/IP ポートもしくはローカル Unix ドメインソケットファイル を指定します。
createdb が作成し バックエンドに送る問い合わせを Echo します。
反応を表示させません。
新しいユーザがデータベースを作成することを許可します。
新しいユーザがデータベースを作成することを禁止します。
新しいユーザが他のユーザを作成することを許可します。
新しいユーザが他のユーザを作成することを禁止します。
指定されると、createuserは 新しいユーザのパスワードのプロンプトを発行します。 これはもしパスワード認証を使う予定がなければ必要ありません。
新しいユーザのユーザ ID をデフォルトでないものを選ぶことが できます。必要ではありませんが、これを好む人たちもいます。
作成する Postgres ユーザ名 を指定します。この名前は全ての Postgres ユーザ名の中でユニークなものでなければなりません。
オプション -h, -p, そして -e は文字どおり psql に渡されます。psql オプション -Uと -W も有効ですが、 このコンテキストではこれらを使うことは混乱を招きかねません。
すべてうまくいきました。
何かに失敗しました。ユーザは作成されませんでした。
createuser は新しい Postgres ユーザを作成します。 pg_shadow テーブルで usesuper が TRUE(t) に設定されている ユーザのみが新しい Postgres ユーザを作成することが できます。
createuser は Postgres 対話的ターミナル psql を通した SQL コマンド CREATE USER を包む shell スクリプトラッパーです。したがって、この方法 あるいは他の方法でユーザを作成しても何も特別なことはないのです。 これは psql がスクリプトに発見されて データベースサーバは目的のホストで起動していなければならない ということです。更に、 psql と libpq フロントエンドライブラリで有効な、どのデフォルト設定や環境変数 にも当てはまります。
joe というユーザをデフォルトデータベースサーバ に作成します。
$ createuser joe Is the new user allowed to create databases? (y/n) n Shall the new user be allowed to create more new users? (y/n) n CREATE USER
ホスト eden 上のポート 5000 の postmaster を使って 同じユーザ joe を作成し、プロンプトを 回避し基になっている問い合わせを見ます。
$ createuser -p 5000 -h eden -D -A -e joe CREATE USER "joe" NOCREATEDB NOCREATEUSER CREATE USER