ALTER USER

Name

ALTER USER -- データベースユーザアカウントの変更

Synopsis

ALTER USER username [ [ WITH ] option [ ... ] ]

 ここで option は以下のとおりです。

      [ ENCRYPTED | UNENCRYPTED ] PASSWORD 'password' 
    | CREATEDB | NOCREATEDB
    | CREATEUSER | NOCREATEUSER 
    | VALID UNTIL 'abstime'

ALTER USER username SET variable { TO | = } { value | DEFAULT }
ALTER USER username RESET variable

説明

ALTER USER を使用すると、PostgreSQL ユーザアカウントの属性を変更できます。このコマンドで指定されなかった属性は、以前の設定のまま残ります。

Synopsis で示されているこのコマンドの最初の変数により、特定のグローバルユーザ権限および認証設定が変更されます。 (詳細は下記を参照してください。)データベーススーパーユーザのみがこのコマンドで権限とパスワード有効期限を変更することができます。一般ユーザは自分自身のパスワードのみを変えることができます。

2 番目および 3 番目の変数により、ユーザのセッションのデフォルト値を、指定した設定変数に変更できます。 このコマンドの後に新しいセッションを開始すると、指定された値がそのセッションのデフォルト値となり、postgresql.conf ファイルに記述されている設定や、postmaster から受け取った設定は上書きされます。 ユーザは通常、自分自身のセッションのデフォルト値を変更できます。 スーパーユーザは、すべてのユーザのセッションのデフォルト値を変更できます。

パラメータ

username

属性が変更されるユーザの名前です。

password

このアカウントに使われる新しいパスワードです。

ENCRYPTED
UNENCRYPTED

これらのキーワードを使用すると、パスワードを暗号化して pg_shadow に格納するかどうかを制御できます。 (このキーワードの選択に関する詳細については、CREATE USER を参照してください。)

CREATEDB
NOCREATEDB

この句はユーザのデータベースの作成に関する権限を定義します。 CREATEDB が指定された場合、そのユーザは、自分が所有するデータベースを作成できます。 NOCREATEDB を指定した場合、作成されるユーザにはデータベースを作成する権限が与えられません。

CREATEUSER
NOCREATEUSER

ユーザが自分で新しいユーザを作成できるかどうかを決定します。またこのオプションにより、そのユーザは全てのアクセス制限を上書きできるスーパーユーザになります。

abstime

ユーザのパスワードの期限が切れる日付(そしてオプションで時刻)です。

variable
value

設定変数におけるこのユーザのセッションのデフォルトを、指定した値に設定します。 valueDEFAULT であるか、または RESET が使用されている場合、ユーザが指定した変数の設定は無効になり、ユーザは、新しいセッションではシステム全体のデフォルト設定を継承します。 すべての設定をクリアするには、RESET ALL を使用してください。

使用可能な変数名および値についての詳細は、SET および管理者用ガイドを参照してください。

診断

ALTER USER

変更に成功した場合に返されるメッセージです。

ERROR: ALTER USER: user "username" does not exist

指定のユーザがデータベースに認知されていない場合に返るエラーメッセージです。

注釈

新しいユーザの追加には CREATE USER を、ユーザの削除には DROP USER を使用して下さい。

ALTER USER ではユーザグループのメンバ構成を変更することはできません。そのためには ALTER GROUP を使用して下さい。

ALTER DATABASE を使用すると、ユーザではなく指定したデータベースにセッションのデフォルト値を関連付けることもできます。

ユーザのパスワードを変更するには以下のようにします。

ALTER USER davide WITH PASSWORD 'hu8jmn3';

ユーザの有効期限を変更するには以下のようにします。

ALTER USER manuel VALID UNTIL 'Jan 31 2030';

以下のように、ユーザの権限が UTC から 1 時間進んだタイムゾーンの 1998 年 5 月 4 日の正午に無効になると指定することにより、ユーザの有効期限を変更できます。

ALTER USER chris VALID UNTIL 'May 4 12:00:00 1998 +1';

ユーザに他のユーザと新しいデータベースを作成する権限を与えるには以下のようにします。

ALTER USER miriam CREATEUSER CREATEDB;

互換性

ALTER USER 文は、PostgreSQL の拡張です。 SQL 標準では、ユーザの定義は実装に任されています。

関連項目

CREATE USER, DROP USER, SET