ALTER USER

Name

ALTER USER  --  Modifies user account information

Synopsis

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

where option can be:

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

Inputs

username

The name of the user whose details are to be altered.

password

The new password to be used for this account.

ENCRYPTED, UNENCRYPTED

These keywords control whether the password is stored encrypted in pg_shadow. (See CREATE USER for more information about this choice.)

CREATEDB, NOCREATEDB

These clauses establish the user's ability to create databases. If CREATEDB is specified, the user being defined will be allowed to create his own databases. NOCREATEDB will deny the user the ability to create databases.

CREATEUSER, NOCREATEUSER

These clauses determine whether a user will be permitted to create new users. This option will also make the user a superuser that can override all access restrictions.

abstime

The date (and, optionally, the time) at which this user's password will expire.

Outputs

ALTER USER

Message returned if the alteration was successful.

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

Error message returned if the specified user is not known to the database.

Description

ALTER USER is used to change the attributes of a user's PostgreSQL account. Attributes not mentioned in the command retain their previous settings.

Only a database superuser can change privileges and password expiration with this command. Ordinary users can change only their own password.

Notes

Use CREATE USER to create a new user and DROP USER to remove a user.

ALTER USER cannot change a user's group memberships. Use ALTER GROUP to do that.

Usage

Create a user to be used in the following examples:
CREATE USER rhdb1;

Change a user password:
ALTER USER rhdb1 WITH PASSWORD 'ke2fv9a';
Change a user's valid until date:
ALTER USER rhdb1 VALID UNTIL 'Dec 31 2050';
Change a user's valid until date, specifying that his authorization should expire at midday on 4th May 2008 using the time zone which is one hour ahead of UTC:
ALTER USER chris VALID UNTIL 'May 4 12:00:00 2008 +1';
Give a user the ability to create other users and new databases:
ALTER USER rhdb1 CREATEUSER CREATEDB;

Compatibility

SQL92

There is no ALTER USER statement in SQL92. The standard leaves the definition of users to the implementation.