September 26, 2024: PostgreSQL 17 Released!
Unsupported versions: 7.0 / 6.5 / 6.4
This documentation is for an unsupported version of PostgreSQL.
You may want to view the same page for the current version, or one of the other supported versions listed above instead.

ALTER USER

Name

ALTER USER — Modifies user account information
ALTER USER username [ WITH PASSWORD password ]
    [ CREATEDB | NOCREATEDB ] [ CREATEUSER | NOCREATEUSER ]
    [ IN GROUP groupname [, ...] ]
    [ VALID UNTIL 'abstime' ]
  

Inputs

Refer to CREATE USER for a detailed description of each clause.

username

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

password

The new password to be used for this account.

groupname

The name of an access group into which this account is to be put.

abstime

The date (and, optionally, the time) at which this user's access is to be terminated.

Outputs

ALTER USER

Message returned if the alteration was successful.

ERROR: alterUser: 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 Postgres account. Please note that it is not possible to alter a user's "usesysid" via the alter user statement. Also, it is only possible for the Postgres user or any user with read and modify permissions on pg_shadow to alter user passwords.

If any of the clauses of the alter user statement are omitted, the corresponding value in the "pg_shadow" table is left unchanged.

Notes

ALTER USER is a Postgres language extension.

Refer to CREATE/DROP USER to create or remove a user account.

In the current release (v6.5), the IN GROUP clause is parsed but has no affect. When it is fully implemented, it is intended to modify the pg_group relation.

Usage

Change a user password:

ALTER USER davide WITH PASSWORD hu8jmn3;
  
Change a user's valid until date
ALTER USER manuel VALID UNTIL 'Jan 31 2030';
   
Change a user's valid until date, specifying that his authorisation should expire at midday on 4th May 1998 using the time zone which is one hour ahead of UTC
ALTER USER chris VALID UNTIL 'May 4 12:00:00 1998 +1';
   
Give a user the ability to create other users and new databases.
ALTER USER miriam CREATEUSER CREATEDB;
   
Place a user in two groups
ALTER USER miriam IN GROUP sales, payroll;
   

Compatibility

SQL92

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