ALTER USER name [ [ WITH ] option [ ... ] ] where option can be: [ ENCRYPTED | UNENCRYPTED ] PASSWORD 'password' | CREATEDB | NOCREATEDB | CREATEUSER | NOCREATEUSER | 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 帐号的属性。 没有在该命令中出现的属性保持原值。
这条命令模式中的第一个变种修改某些全局用户权限和认证设置。 (见下文获取细节。)只有数据库超级用户可以用这条命令改变这些权限和使口令失效。普通用户只能修改它们自己的口令。
第二个变种改变用户的名字。只有数据库超级用户才能重新命名用户帐户。 当前会话用户不能重命名。(如果想这么干,先用另外一个用户账号连接。)
第三和第四个变种修改用户会话的特定配置变量的缺省值。 当该用户随后启动一个新的会话时,声明的数值将成为会话的缺省,覆盖 任何出现在 postgresql.conf 里,或者从 postmaster 命令行接收到的设置。 普通用户可以修改它们自己的会话缺省。超级用户可以修改任何用户的缺省。
参阅 SET [set(7)] 和 Section 16.4 ``Run-time Configuration'' 获取有关可用变量和数值的更多信息。
使用 CREATE USER [create_user(7)]
创建新用户和 DROP USER [drop_user(7)] 删除用户。
ALTER USER 无法改变一个用户的组的成员性。 用 ALTER GROUP [alter_group(7)] 实现这个目地。
使用 ALTER DATABASE [alter_database(7)],我们还可能把一个会话缺省和某个数据库绑定起来,而不是和某个用户绑定。
更改一用户口令:
ALTER USER davide WITH PASSWORD 'hu8jmn3';
更改一用户有效期:
ALTER USER manuel VALID UNTIL 'Jan 31 2030';
更改一用户有效期, 声明其权限应该在用比UTC早一小时的时区记时的 2005 年 5 月 4 日正午失效
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 标准将用户的定义交给实现完成。