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 用于更改用户的 PostgreSQL 帐号的属性. 没有在该命令中出现的属性保持原值.

这条命令大纲中的第一个变种修改某些全局用户权限和认证设置. (见下文获取细节.)只有一个数据库超级用户可以用这条命令改变权限和 使口令失效.普通用户只能修改它们自己的口令.

第二和第三个变种修改用户会话的特定配置变量的缺省值. 当该用户随后启动一个新的会话时,将在会话开始之前有效地执行SET variable TO value. 普通用户可以修改它们自己的会话缺省.超级用户可以修改任何用户的缺省.

参数

username

想进行属性更改的用户名字。

password

此帐号所使用的新口令。

ENCRYPTED
UNENCRYPTED

这些关键字控制口令是否以加密形式存在 pg_shadow 里. (参阅 CREATE USER 获取这个选项的更多信息.)

CREATEDB
NOCREATEDB

这个子句定义该用户创建数据库的能力。 如果声明了CREATEDB,该用户可以创建她自己的数据库。 用NOCREATEDB将剥夺一个用户创建数据库的能力。

CREATEUSER
NOCREATEUSER

这个子句决定一个用户能否创建新用户。 这个选项同样还令该用户成为超级用户,可以超越所有访问限制。

abstime

该用户帐号口令的过期的日期(和可选的时间)。

variable
value

把该用户特定的配置变量的会话缺省设置为给定的数值. 如果 value 为 DEFAULT 或者使用了等效的 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早一小时的时区记时的 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