[11/15開催: PostgreSQL Conference Japan 2019 参加受付中] 
他のバージョンの文書 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

名前

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

概要

createuser [option...] [username]

説明

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

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

createuserSQL コマンド CREATE USER のラッパです。 したがって、このユーティリティによるユーザを作成しても、これ以外の方法でサーバにアクセスしてユーザを作成しても特別な違いはありません。

オプション

createuser では、下記のコマンドライン引数を指定できます。

username

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

-a
--adduser

新しいユーザは、他のユーザを作成することが許可されます。 (注意: 実際には、これにより新しいユーザは スーパーユーザ となります。 このオプションのネーミングは適切ではありません。)

-A
--no-adduser

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

-d
--createdb

新しいユーザは、データベースの作成が許可されます。

-D
--no-createdb

新しいユーザは、データベースの作成が禁止されます。 これがデフォルトです。

-e
--echo

createuser が生成し、サーバに送信したコマンドをエコー表示します。

-E
--encrypted

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

-i number
--sysid number

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

-N
--unencrypted

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

-P
--pwprompt

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

-q
--quiet

応答を表示させないようにします。

コマンドラインで指定しない場合、名前や他の不足している情報の入力が要求されます。

createuser は、以下のコマンドライン引数も接続パラメータとして受けつけます。

-h host
--host host

サーバが稼働しているマシンのホスト名を指定します。この値がスラッシュから始まる場合、Unix ドメインソケット用のディレクトリとして使用されます。

-p port
--port port

サーバが接続を監視する TCP ポートもしくは Unix ドメインソケットファイルの拡張子を指定します。

-U username
--username username

接続に使用するユーザ名です。(作成するユーザの名前ではありません)

-W
--password

パスワードのプロンプトを強制的に表示します (新しいユーザのパスワードではなく、サーバに接続するためのパスワードです)。

環境

PGHOST
PGPORT
PGUSER

デフォルトの接続パラメータです。

診断

問題が発生した場合、CREATE USERpsql における潜在する問題とエラーメッセージの説明を参照してください。 データベースサーバは対象ホストで稼働していなければなりません。 また、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 のサーバを使って同じユーザ joe を作成し、プロンプトを回避し、背後で実行される問い合わせを表示します。

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

関連項目

dropuser, CREATE USER