↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

受支持版本: 当前版本 (18) / 17 / 16 / 15 / 14
测试与开发版本: 19 / devel
不受支持的版本: 13 / 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1 / 7.0 / 6.5 / 6.4
历史版本PostgreSQL 8.0 已于 2010 年 10 月结束社区维护,本页译文保留供仍在使用旧版本的读者参考。新系统请看当前版本。

ALTER USER

ALTER USER — 更改一个数据库用户帐号

大纲

ALTER USER name [ [ WITH ] option [ ... ] ]

where option can be:

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

ALTER USER name RENAME TO newname

ALTER USER name SET parameter { TO | = } { value | DEFAULT }
ALTER USER name RESET parameter

描述

ALTER USER更改一个 PostgreSQL用户帐号的属性。命令中未提及的 属性保留其原有设置。

概要中列出的第一种变体用于更改某些逐用户的权限和认证设置。 (细节见下文。)数据库超级用户可以更改任何用户的任何设置。 普通用户只能更改自己的密码。

第二种变体更改用户的名称。只有数据库超级用户才能重命名用户帐号。 当前会话用户不能被重命名。(如果需要这样做,请以其他用户身份连接。) 因为MD5加密的密码把用户名用作加密盐值, 重命名用户会清除其MD5密码。

第三种和第四种变体更改用户在指定配置变量上的会话默认值。 每当该用户随后启动新会话时,指定的值就成为会话默认值, 覆盖postgresql.conf中存在的设置或从 postmaster命令行接收的设置。 普通用户可以更改自己的会话默认值。 超级用户可以更改任何人的会话默认值。 某些变量不能用这种方式设置,或者只能由超级用户设置。

参数

name

要更改其属性的用户名。

CREATEDB
NOCREATEDB

这些子句定义用户创建数据库的能力。如果指定CREATEDB, 将允许该用户创建他自己的数据库。指定NOCREATEDB 将禁止该用户创建数据库。(如果该用户同时是超级用户, 那么这个设置没有实际效果。)

CREATEUSER
NOCREATEUSER

这些子句决定是否允许用户自己创建新用户。CREATEUSER 还会把该用户变为超级用户,超级用户可以越过所有访问限制。

password

此帐号要使用的新密码。

ENCRYPTED
UNENCRYPTED

这些关键字控制密码是否以加密形式存储在pg_shadow中。 (有关这一选择的更多信息,参见 CREATE USER。)

abstime

该用户密码将过期失效的日期(以及可选的时间)。 要让密码永不过期,请使用'infinity'。

newname

该用户的新名称。

parameter
value

将该用户在指定配置参数上的会话默认值设为给定值。如果 value为DEFAULT, 或者等价地使用了RESET,则移除该用户特定的 变量设置,这样该用户在新会话中将继承系统范围的默认设置。 使用RESET ALL可清除所有用户特定的设置。

有关允许的参数名和值的更多信息,请参见 SET和 第 16.4 节。

注解

使用CREATE USER 添加新用户,使用DROP USER删除用户。

ALTER USER不能更改用户的组成员资格。 要做到这一点,请使用ALTER GROUP。

VALID UNTIL子句只为密码定义过期时间,而不是为用户帐号本身定义过期时间。特别是,使用非基于密码的认证方式登录时,不会强制执行该过期时间。

也可以把会话默认值绑定到特定数据库而不是用户;参见 ALTER DATABASE。 如果两者冲突,用户特定的设置会覆盖数据库特定的设置。

示例

更改用户的密码:

ALTER USER davide WITH PASSWORD 'hu8jmn3';

更改用户密码的过期日期:

ALTER USER manuel VALID UNTIL 'Jan 31 2030';

更改密码过期日期,指定密码应在 2005 年 5 月 4 日中午过期, 使用比 UTC 早一小时的时区:

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

让密码永远有效:

ALTER USER fred VALID UNTIL 'infinity';

授予用户创建其他用户和新数据库的能力:

ALTER USER miriam CREATEUSER CREATEDB;

兼容性

ALTER USER语句是 PostgreSQL的一种扩展。 SQL 标准将用户的定义交由具体实现决定。

提交更正

译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。