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

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

百科 / SQL 命令 / 外部数据

SQL COMMAND · 外部数据

CREATE USER MAPPING

定义用户到外部服务器的新映射

CREATE外部数据引入 10(基线)现存至 20 devel1 次语法变更

动词
CREATE
对象
USER MAPPING
引入版本
10(基线)
状态
现存
语法变更次数
1
手册小节数
5

本站手册 · 18官方文档 ↗

版本轨迹

相对 PostgreSQL 17 无变化。

语法铁道图 PostgreSQL 18

沿轨道从左向右阅读,分岔表示选择,绕行表示可选,回环表示重复。方框为参数,点击带下划线的参数可展开子规则。

CREATE USER MAPPING IF NOT EXISTS FOR user_name USER CURRENT_ROLE CURRENT_USER PUBLIC SERVER server_name OPTIONS ( option ' value ' , )

语法概要

CREATE USER MAPPING [ IF NOT EXISTS ] FOR { user_name | USER | CURRENT_ROLE | CURRENT_USER | PUBLIC }
    SERVER server_name
    [ OPTIONS ( option 'value' [ , ... ] ) ]

PostgreSQL 18 手册 · 查看完整参考页

描述

CREATE USER MAPPING定义用户到外部服务器的映射。用户映射通常封装连接信息,外部数据包装器会将其与外部服务器所封装的信息结合起来,以访问外部数据资源。

外部服务器的拥有者可以创建任意用户到该服务器的用户映射。此外,如果某个用户已被授予该服务器上的USAGE权限,那么该用户也可以为自己的用户名创建用户映射。

参数

IF NOT EXISTS

如果给定用户到给定外部服务器的映射已经存在,则不要报错。这种情况下会发出一个提示。请注意,不能保证现有用户映射与本应创建的映射有任何相似之处。

user_name

被映射到外部服务器的现有用户的名称。CURRENT_ROLE、CURRENT_USER 和USER都匹配当前用户的名称。当指定 PUBLIC时,会创建一个所谓的公共映射;当没有适用的特定用户映射时,就会使用它。

server_name

将为其创建用户映射的现有服务器的名称。

OPTIONS ( option 'value' [, ... ] )

该子句指定用户映射的选项。这些选项通常定义该映射实际的用户名和密码。选项名必须唯一。允许的选项名和值取决于该服务器的外部数据包装器。

示例

为用户bob、服务器foo创建一个用户映射:

CREATE USER MAPPING FOR bob SERVER foo OPTIONS (user 'bob', password 'secret');

兼容性

CREATE USER MAPPING符合 ISO/IEC 9075-9(SQL/MED)。

另见

语法演化

相邻大版本之间的差异,新的在前。版本号链接到对应快照。

  1. PostgreSQL 14← 13语法变化

    + CREATE USER MAPPING [ IF NOT EXISTS ] FOR { user_name | USER | CURRENT_ROLE | CURRENT_USER | PUBLIC }正文更新

同组命令

命令动词对象版本变动最近变更
FOREIGN DATA外部数据13 条↑
CREATE FOREIGN DATA WRAPPERCREATEFOREIGN DATA WRAPPER 191 次
定义一个新的外部数据包装器现存
ALTER FOREIGN DATA WRAPPERALTERFOREIGN DATA WRAPPER 192 次
更改外部数据包装器的定义现存
DROP FOREIGN DATA WRAPPERDROPFOREIGN DATA WRAPPER —
移除一个外部数据包装器现存
IMPORT FOREIGN SCHEMAIMPORTFOREIGN SCHEMA —
从一个外部服务器导入表定义现存
CREATE FOREIGN TABLECREATEFOREIGN TABLE 183 次
定义一个新外部表现存
ALTER FOREIGN TABLEALTERFOREIGN TABLE 163 次
更改外部表的定义现存
DROP FOREIGN TABLEDROPFOREIGN TABLE —
移除一个外部表现存
CREATE SERVERCREATESERVER —
定义一个新的外部服务器现存
ALTER SERVERALTERSERVER 141 次
更改外部服务器的定义现存
DROP SERVERDROPSERVER —
移除一个外部服务器描述符现存
CREATE USER MAPPINGCREATEUSER MAPPING 141 次
定义用户到外部服务器的新映射现存
ALTER USER MAPPINGALTERUSER MAPPING 141 次
更改用户映射的定义现存
DROP USER MAPPINGDROPUSER MAPPING 141 次
删除外部服务器的用户映射现存