.\\" auto-generated by docbook2man-spec $Revision: 1.2 $
.TH "ALTER USER" "" "2005-01-19" "SQL - 言語" "SQL コマンド"
.SH NAME
ALTER USER \- データベースユーザアカウントの変更

.SH SYNOPSIS
.sp
.nf
ALTER USER \fIname\fR [ [ WITH ] \fIoption\fR [ ... ] ]

ここで\fIoption\fRは以下の通りです。

    CREATEDB | NOCREATEDB
    | CREATEUSER | NOCREATEUSER 
    | [ ENCRYPTED | UNENCRYPTED ] PASSWORD '\fIpassword\fR' 
    | VALID UNTIL '\fIabstime\fR'

ALTER USER \fIname\fR RENAME TO \fInewname\fR

ALTER USER \fIname\fR SET \fIparameter\fR { TO | = } { \fIvalue\fR | DEFAULT }
ALTER USER \fIname\fR RESET \fIparameter\fR
.sp
.fi
.SH "説明"
.PP
\fBALTER USER\fRはPostgreSQLユーザアカウントの属性を変更します。
このコマンドで指定されなかった属性は、以前の設定のまま残ります。
.PP
概要で示されているこのコマンドの最初の構文により、特定のユーザ単位の権限および認証設定が変更されます。 
(詳細は下記を参照してください。)
データベーススーパーユーザのみがこのコマンドで任意のユーザの設定を変更することができます。
一般ユーザは自分自身のパスワードのみを変えることができます。
.PP
2番目の構文は、ユーザ名を変更します。
データベーススーパーユーザのみがユーザアカウントの名前を変更できます。
現在のセッションのユーザの名前を変更することはできません。
(必要な場合は異なるユーザで接続してください。)
MD5暗号化パスワードは暗号処理用のソルトとしてユーザ名を使用しますので、ユーザ名を変更するとMD5パスワードは消去されます。
.PP
3番目および4番目の構文により、ユーザのセッションのデフォルト値を、指定した設定変数に変更できます。
このコマンドの後に新しいセッションを開始すると、指定された値がそのセッションのデフォルト値となり、\fIpostgresql.conf\fRファイルに記述されている設定や、\fBpostmaster\fRから受け取った設定は上書きされます。 
一般ユーザは、自分自身のセッションのデフォルト値を変更できます。 
スーパーユーザは、全てのユーザのセッションのデフォルト値を変更できます。
特定の変数はこの方法では設定できず、スーパーユーザのみが設定することができます。
.SH "パラメータ"
.TP
\fB\fIname\fB\fR
属性が変更されるユーザの名前です。
.TP
\fBCREATEDB\fR
.TP
\fBNOCREATEDB\fR
この句はユーザのデータベースの作成に関する権限を定義します。 
CREATEDBが指定された場合、そのユーザは、自分が所有するデータベースを作成できます。 
NOCREATEDBを指定した場合、作成されるユーザにはデータベースを作成する権限が与えられません。
(ユーザがスーパーユーザでもあった場合、この設定は実際に影響を与えません。)
.TP
\fBCREATEUSER\fR
.TP
\fBNOCREATEUSER\fR
この句は、ユーザが自分で新しいユーザを作成できるかどうかを決定します。
またCREATEUSERにより、そのユーザは全てのアクセス制限を上書きできるスーパーユーザになります。
.TP
\fB\fIpassword\fB\fR
このアカウントに使われる新しいパスワードです。
.TP
\fBENCRYPTED\fR
.TP
\fBUNENCRYPTED\fR
これらのキーワードを使用すると、パスワードを暗号化してpg_shadowに格納するかどうかを制御できます。
(このキーワードの選択に関する詳細については、CREATE USER [\fBcreate_user\fR(l)]を参照してください。)
.TP
\fB\fIabstime\fB\fR
ユーザのパスワードの期限が切れる日付（そしてオプションで時刻）です。
パスワードの有効期限を無効にするには、'infinity'を使用してください。
.TP
\fB\fInewname\fB\fR
ユーザの新しい名前です。
.TP
\fB\fIparameter\fB\fR
.TP
\fB\fIvalue\fB\fR
指定された設定パラメータにおけるこのユーザのセッションのデフォルトを、この値に設定します。 
\fIvalue\fRがDEFAULTであるか、またはRESETが使用されている場合、ユーザが指定した変数の設定は無効になりますので、ユーザは、新しいセッションではシステム全体のデフォルト設定を継承します。 
全てのユーザ固有の設定をクリアするには、RESET ALLを使用してください。

使用可能なパラメータ名および値についての詳細は、SET [\fBset\fR(l)]およびthe documentationを参照してください。
.SH "注釈"
.PP
新しいユーザの追加にはCREATE USER [\fBcreate_user\fR(l)]を、ユーザの削除にはDROP USER [\fBdrop_user\fR(l)]を使用してください。
.PP
\fBALTER USER\fRではユーザグループのメンバ構成を変更することはできません。
このためにはALTER GROUP [\fBalter_group\fR(l)]を使用してください。
.PP
VALID UNTIL句は、パスワードのみの有効期限を定義します。
いうまでもありませんが、ユーザアカウントの有効期限ではありません。
特に、パスワードを元にしない認証方式でログインを行う場合には、この有効期限は強制されません。
.PP
It is also possible to tie a
session default to a specific database rather than to a user; see
ALTER DATABASE [\fBalter_database\fR(l)].
User-specific settings override database-specific
ones if there is a conflict.
-->
ユーザではなく指定したデータベースにセッションのデフォルト値を関連付けることもできます。
ALTER DATABASE [\fBalter_database\fR(l)]を参照してください。
競合する場合、ユーザ固有の設定によりデータベース固有の設定は上書きされます。
.SH "例"
.PP
ユーザのパスワードを変更します。
.sp
.nf
ALTER USER davide WITH PASSWORD 'hu8jmn3';
.sp
.fi
.PP
ユーザのパスワードの有効期限を変更します。
.sp
.nf
ALTER USER manuel VALID UNTIL 'Jan 31 2030';
.sp
.fi
.PP
ユーザのパスワードがUTCから1時間進んだ時間帯の2005年5月4日の正午に無効になると指定することにより、ユーザのパスワードの有効期限を変更します。
.sp
.nf
ALTER USER chris VALID UNTIL 'May 4 12:00:00 2005 +1';
.sp
.fi
.PP
パスワードの有効期限を永久にします。
.sp
.nf
ALTER USER fred VALID UNTIL 'infinity';
.sp
.fi
.PP
ユーザに、他のユーザと新しいデータベースを作成する権限を与えます。
.sp
.nf
ALTER USER miriam CREATEUSER CREATEDB;
.sp
.fi
.SH "互換性"
.PP
\fBALTER USER\fR文は、PostgreSQLの拡張です。 
標準SQLでは、ユーザの定義は実装に任されています。
.SH "関連項目"
CREATE USER [\fBcreate_user\fR(l)], DROP USER [\fBdrop_user\fR(l)], SET [\fBset\fR(l)]
