CREATE USER name [ [ WITH ] option [ ... ] ] ここで option は以下のとおりです。 SYSID uid | [ ENCRYPTED | UNENCRYPTED ] PASSWORD 'password' | CREATEDB | NOCREATEDB | CREATEUSER | NOCREATEUSER | IN GROUP groupname [, ...] | VALID UNTIL 'abstime'
CREATE USER は、PostgreSQL クラスタに、新しいユーザを加えます。 ユーザの管理と認証に関する情報については、第17章 と 第19章 を参照して下さい。 このコマンドを使用するにはデータベースのスーパーユーザでなければなりません。
ユーザの名前です。
SYSID 句を使用して、作成されるユーザの PostgreSQL ユーザ ID を選択することができます。 これは通常必要ありませんが、所有者がいなくなったオブジェクトの所有者を再作成しなければならない場合に有用になるかもしれません。
この句が指定されない場合、割り当て済みのユーザ ID の最大値に 1 を足したものがデフォルトとして使われます (100 が最小値です)。
ユーザのパスワードを設定します。 もしパスワード認証を使う予定がなければこのオプションは省略できます。 しかし、パスワード認証を行うよう変更した場合このユーザは接続できません。 ALTER USER を使用して、後でパスワードを設定することも変更することも可能です。
これらのキーワードを使用すると、パスワードを暗号化してシステムカタログに格納するかどうかを制御できます。 (どちらも設定されていない場合のデフォルトの動作は、PASSWORD_ENCRYPTION 設定パラメータによって決まります。) 指定された文字列がすでに MD5 暗号化書式である場合は、ENCRYPTED、UNENCRYPTED のどちらが指定されているかに関係なく、そのまま保存されます。 (システムでは、指定された暗号化されたパスワードを復号できないからです。) これにより、ダンプ/リストアの時に暗号化パスワードを再読み込みすることができます。
古めのクライアントでは、暗号化して保存されたパスワードを使用するために必要な MD5 認証機構をサポートしていない場合があることに注意して下さい。
これらの句はユーザのデータベースの作成に関する権限を定義します。 CREATEDB が指定された場合、そのユーザは、自己所有のデータベースを作成することができます。 NOCREATEDB を使用した場合、作成されるユーザには、データベースを作成する権限が与えられません。 この句を省略した場合は、NOCREATEDB がデフォルトとして使用されます。
これらの句は、ユーザが自分で新しいユーザを作成できるかどうかを決定します。 また、このオプションにより、そのユーザは全てのアクセス制限を上書きできるスーパーユーザになります。 この句を省略した場合、ユーザの属性には NOCREATEUSER が設定されます。
新しいメンバとしてユーザを挿入するグループの名前です。 複数のグループ名を指定することができます。
VALID UNTIL 句は、ユーザのパスワードが有効でなくなるまでの絶対日時を設定します。 この句が省略された場合、永遠にログイン可能になります。
ユーザの属性を変更するには ALTER USER を、ユーザを削除するには DROP USER を使用してください。 ユーザをグループに追加したり、グループから削除したりするには、ALTER GROUP を使用してください。
PostgreSQL には、CREATE USERと同じ機能を持つ (実際は、このコマンドを呼び出しています) プログラム createuser があり、コマンドシェルから実行することができます。
パスワードを持たないユーザを作成します。
CREATE USER jonathan;
パスワードを持つユーザを作成します。
CREATE USER davide WITH PASSWORD 'jw8s0F4';
アカウントが 2004 年の終りまで有効なパスワードを持つユーザを作成しています。 2005 年に一秒でも入った後はパスワードは無効になります。
CREATE USER miriam WITH PASSWORD 'jw8s0F4' VALID UNTIL '2005-01-01';
データベースを作成することのできるアカウントを作成します。
CREATE USER manuel WITH PASSWORD 'jw8s0F4' CREATEDB;