他のバージョンの文書 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

createuser

Name

createuser -- 新しい PostgreSQL ユーザアカウントを定義。

Synopsis

createuser [options...] [username]

入力

-h, --host host

サーバが動いているマシンのホスト名を指定します。もしホストがスラッシュで始まる場合、Unix ドメインソケットのディレクトリとして使われます。

-p, --port port

サーバが接続を監視しているインターネット TCP/IP ポートもしくはローカル Unix ドメインソケットファイル を指定します。

-e, --echo

createuser が作成しサーバに送る問い合わせを表示させます。

-q, --quiet

応答を表示させません。

-d, --createdb

新しいユーザがデータベースを作成することを許可します。

-D, --no-createdb

新しいユーザがデータベースを作成することを禁止します。

-a, --adduser

新しいユーザが他のユーザを作成することを許可します。(注意: 実際これにより新しいユーザはスーパーユーザ となります。このオプションの名前はあまり適したものとはいえません。)

-A, --no-adduser

新しいユーザが他のユーザを作成することを禁止します。(つまり、新しいユーザはスーパーユーザではなく、一般ユーザとなります。)

-P, --pwprompt

指定されると、createuserは新しいユーザのパスワードのプロンプトを発行します。これはもしパスワード認証を使う予定がなければ必要ありません。

-i, --sysid uid

新しいユーザのユーザ ID をデフォルトでないものを選ぶことができます。必要ではありませんが、これを好む人たちもいます。

-E, --encrypted

データベースに保存するユーザのパスワードを暗号化します。指定されない場合デフォルト値が使用されます。

-N, --unencrypted

データベースに保存するユーザのパスワードを暗号化しません。指定されない場合デフォルト値が使用されます。

username

作成する PostgreSQL ユーザ名を指定します。この名前は全ての PostgreSQL ユーザ名の中で一意なものでなければなりません。

もしコマンドラインで指定しない場合、名前と他の足りない情報を入力するよう要求されます。

オプション -h, -p, そして -e は文字どおり psql に渡されます。psql オプション -U-W も有効ですが、このコンテキストではこれらを使うことは混乱を招きかねません。

出力

CREATE USER

すべてうまくいきました。

createuser: creation of user "username" failed

何かに失敗しました。ユーザは作成されませんでした。

もしエラー状態がある場合、バックエンドエラーメッセージが表示されます。可能なエラーについては CREATE USERpsql を参照して下さい。

説明

createuser は新しい PostgreSQL ユーザを作成します。スーパーユーザのみ(pg_shadow テーブルで usesuper が TRUE(t) に設定されているユーザのみ)が新しい PostgreSQL ユーザを作成することができます。 従って、createuser は、 PostgreSQL スーパーユーザであるユーザによって実行されなければなりません。

また、スーパーユーザであることは、そのデータベースにおけるアクセス権限の検査を素通りできることを意味しています。ですから、スーパーユーザという地位を簡単に与えてはなりません。

createuserPostgreSQL 対話的ターミナル psql を通した SQL コマンド CREATE USER を包む shell スクリプトラッパーです。したがって、この方法あるいは他の方法でユーザを作成しても何も特別なことはないのです。これは psql がスクリプトで参照されてデータベースサーバが目的のホストで稼働していなければならないということです。更に、 psqllibpq フロントエンドライブラリで使用される、全てのデフォルト設定や環境変数も適用されます。

使用方法

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 のサーバを使って同じユーザ joe を作成し、プロンプトを回避し、背後で実行される問い合わせを表示します。

$ createuser -p 5000 -h eden -D -A -e joe
CREATE USER "joe" NOCREATEDB NOCREATEUSER
CREATE USER