Jiv*_*van 3 sql postgresql foreign-data-wrapper postgresql-10
使用 PostgreSQL 10.10,来自超级用户postgres:
CREATE EXTENSION postgres_fdw;
GRANT USAGE ON FOREIGN DATA WRAPPER postgres_fdw TO my_user;
Run Code Online (Sandbox Code Playgroud)
然后在执行以下操作时my_user:
CREATE SERVER my_server
FOREIGN DATA WRAPPER postgres_fdw
OPTIONS (...);
Run Code Online (Sandbox Code Playgroud)
显示此错误消息:
Query 1 ERROR: ERROR: foreign-data wrapper "postgres_fdw" does not exist
Run Code Online (Sandbox Code Playgroud)
以下是当前活动的外部数据包装器的列表(来自 psql):
postgres=# \dew
List of foreign-data wrappers
Name | Owner | Handler | Validator
--------------+----------+----------------------+------------------------
postgres_fdw | postgres | postgres_fdw_handler | postgres_fdw_validator
(1 row)
Run Code Online (Sandbox Code Playgroud)
为什么即使在被授予之后USAGE,用户my_user仍然无法看到/使用 postgres_fdw 外部数据包装器,就好像后者不存在一样?还需要采取更多步骤吗?
由于外部数据包装器不在模式中,唯一的解释是CREATE EXTENSION和CREATE SERVER在不同的数据库中运行(外部数据包装器不是“全局对象”)。您必须在同一个数据库中运行这些语句。
顺便说一句,显式CREATE FOREIGN DATA WRAPPER会导致错误,因为扩展已经创建了该名称的外部数据包装器。
| 归档时间: |
|
| 查看次数: |
6579 次 |
| 最近记录: |