ALTER USER MAPPING FOR { user_name | USER | CURRENT_USER | PUBLIC } SERVER server_name OPTIONS ( [ ADD | SET | DROP ] option ['value'] [, ... ] )
ALTER USER MAPPING 更改户映射的定义。
外服务器的所有者可以为任何用户更改那个服务器的户映射。 而且,若已将服务器的USAGE权限授予该用户,那么该用户 可以为其自身的用户名修改户映射。
映射的名称。CURRENT_USER和USER匹配当前用户的名称。 PUBLIC用于匹配系统中已有和将来创建的所有用户名。
用户映射的服务器名称。
为户映射更改选项。先选项重写所有先前声明的选项。 ADD, SET, 和DROP声明要执行的操作。若未明确声明操作,则假定为ADD。 选项名称必须是独一无二的;选项也要通过服务器的外数据封装包验证。
为户映射bob,服务器 foo更改密码:
ALTER USER MAPPING FOR bob SERVER foo OPTIONS (user 'bob', password 'public');
foo conforms to ISO/IEC 9075-9 (SQL/MED). There is a subtle syntax issue: The standard omits the FOR key word. Since both CREATE USER MAPPING and DROP USER MAPPING use FOR in analogous positions, and IBM DB2 (being the other major SQL/MED implementation) also requires it for ALTER USER MAPPING, PostgreSQL diverges from the standard here in the interest of consistency and interoperability. foo符合于ISO/IEC 9075-9(SQL/MED)。存在一个微妙的语法问题: 标准省略了FOR关键字。自CREATE USER MAPPING 和DROP USER MAPPING在类似的位置使用FOR, 并且IBM DB2 对于ALTER USER MAPPING(作为其他主要SQL/MED实现) 也需要它,PostgreSQL偏离在一致性和交互操作性的利益的标准。