ALTER USER MAPPING — 更改用户映射的定义
ALTER USER MAPPING FOR {user_name
| USER | CURRENT_ROLE | CURRENT_USER | SESSION_USER | PUBLIC } SERVERserver_name
OPTIONS ( [ ADD | SET | DROP ]option
['value
'] [, ... ] )
ALTER USER MAPPING
更改用户映射的定义。
外来服务器所有者可以更改该服务器上的任何用户的用户映射。而且,如果已向用户授予服务器的 USAGE
权限,则用户可以更改其自己用户名上的用户映射。
user_name
映射的用户名。 CURRENT_ROLE
、CURRENT_USER
和 USER
与当前用户的名称相匹配。 PUBLIC
用于匹配系统中所有当前和未来的用户名。
server_name
用户映射的服务器名称。
OPTIONS ( [ ADD | SET | DROP ] 选项
['值
'] [, ... ] )
更改用户映射的选项。新选项将覆盖先前指定的任何选项。 ADD
、SET
和 DROP
指定要执行的操作。如果未明确指定操作,则假定为 ADD
。选项名称必须唯一;选项还由服务器的外来数据包装程序进行验证。
更改用户映射 bob
、服务器 foo
的密码
ALTER USER MAPPING FOR bob SERVER foo OPTIONS (SET password 'public');
ALTER USER MAPPING
符合 ISO/IEC 9075-9 (SQL/MED)。其中存在一个微妙的语法问题:该标准省略了 FOR
关键字。由于 CREATE USER MAPPING
和 DROP USER MAPPING
都在类似的位置使用 FOR
,并且 IBM DB2(作为另一主要 SQL/MED 实现)也要求 ALTER USER MAPPING
使用,因此在一致性和互操作性的优先考虑下,PostgreSQL 在此处偏离了标准。