从超级用户postgres使用PostgreSQL 10.10 CREATE EXTENSION postgres_fdw;
GRANT USAGE ON FOREIGN DATA WRAPPER postgres_fdw TO my_user; 然后,在my_user中执行以下操作时 CREATE SERVER my_server
FOREIGN DATA WRAPPER postgres_fdw
OPTIONS (...); 将显示此错误消息: Query 1 ERROR: ERROR: foreign-data wrapper "postgres_fdw" does
首先,我安装了oracle_fdw和oracle即时客户端。其次,我设置了LD_LIBRARY_PATH和ORACLE_HOME (~/..bash_profile)。最后,我在oracle_fdw目录中运行了make命令。我安装了上面的oracle_fdw扩展,但是出现了一个错误。
# login
$ su - postgres
# set system path
$ sudo vim .bash_profile
export LD_LIBRARY_PATH=/oracle_fdw/instantclient_11_2
export ORACLE_HOME=/oracle_fdw/inst
外餐桌特权是如何工作的?一个简单的例子,其中source_db和destination_db都是Postgres数据库。
source_db:
-- create user for user mapping
CREATE USER fdw_user WITH PASSWORD 'secret';
-- create table
CREATE TABLE data (value TEXT);
-- set privileges
GRANT ALL ON TABLE data TO fdw_user;
destination_db:
-- create extension
CRE
我正在通过fdw_postgres从不同的DB访问数据。它工作得很好:
CREATE FOREIGN TABLE fdw_table
(
name TEXT,
area double precision,
use TEXT,
geom GEOMETRY
)
SERVER foreign_db
OPTIONS (schema_name 'schema_A', table_name 'table_B')
但是,当我查询fdw_table的fdw_table时,会得到以下结果:name text area double precision
我正在使用cartoDB和Postgres9.3,包括PostGIS。当我试图在cartoDB中创建开发用户时,我会得到以下错误:
'CREATE EXTENSION IF NOT EXISTS odbc_fdw SCHEMA public;'
ERROR: could not open extension control file "/usr/share/postgresql/9.3/extension/odbc_fdw.control": No such file or directory
此外,当我试图在Postgres中运行odbc_fdw扩展时,我也
我正在尝试使用Visual Studio Community 2017为Windows64位编译,但是我得到了下面的错误。
C/C++附加包含目录包括:
E:\Downloads\FreeTDS-1.00-x86\freetds-1.00\include
C:\Apps\postgres\pgsql-10.0\include\server\port\win32_msvc
C:\Apps\postgres\pgsql-10.0\include\server\port\win32
C:\Apps\postgres\pgsql-10.0\include
C:\Apps\postgres\pgsql-
我使用的是包括PostGIS在内的cartoDB和Postgres9.3。当我尝试在cartoDB中创建开发用户时,我得到了这个错误:
PG::Error: ERROR: could not access file "$libdir/odbc_fdw": No such file or directory: CREATE EXTENSION IF NOT EXISTS odbc_fdw SCHEMA public
此外,当我尝试在Postgres中运行odbc_fdw扩展时,我得到了相同的错误。
你知道怎么修复它吗?
我创建了两个postgres数据库。9.5.4版第一个数据库称为持久化。我正在处理来自的一些用于身份验证的示例代码。代码工作得很好,下面是我的持久化数据库定义:
create schema localschema;
grant all on schema localschema to postgres;
create table localschema.users (
email text primary key check ( email ~* '^.+@.+\..+$' ),
pass text not null check (length(pa
我有两个数据库db1 & db2,我用以下方法将postgres_fdw创建到db1 & db 2中:
CREATE EXTENSION postgres_fdw;
我将服务器和用户映射配置为db2:
CREATE SERVER remote_server FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host
'my_host', port '5432', dbname 'db1');
CREATE USER MAPPING FOR postgres SERVER remote_ser
编辑:我已经解决了这个问题。剧透,它与psql或fdw无关。这是一个DNS问题,因为我在没有配置我们内部DNS服务器的对接机中运行本地DB。
我正试图在我的数据库中创建一个外部表(来自另一个postgres数据库)。但是,当我运行select语句时,外部数据包装程序说它无法转换提供的主机名:
ERROR: could not connect to server "pgs3"
DETAIL: could not translate host name "db7.ap.int.unavco.org" to address: Name or service not
我正在与来自postgres的pg_rdeis_fdw合作。
当我试图从postgres帐户中插入到现有模式的记录时,一切正常。
然而,当我试图从另一个用户执行同样的操作时,我得到了“关系被拒绝的许可”,尽管我授予了用户以下特权:
grant all on FOREIGN DATA WRAPPER redis_fdw to ami;
grant all on FOREIGN SERVER redis_server to ami;
grant all on ALL TABLES IN SCHEMA public to ami;
GRANT ALL PRIVILEGES ON TABLE user
我在创建oracle_fdw时遇到了问题。
我已经将扩展复制到postgres lib文件夹* .sql文件和控制文件都复制到shrared/ oracle_fdw.dll
现在,当我使用superadmin用户连接到psql并进行查询时
create extension oracle_fdw;
我得到了回应
ERROR: could not load library "D:/postgresdb/lib/oracle_fdw.dll": The specified procedure could not be found.
我需要创建一个序列,并需要为两个不同服务器上的两个以上数据库使用用于自动增量id的序列。我指的是下面的文档(为了测试目的):https://paquier.xyz/postgresql-2/global-sequences-with-postgres_fdw和postgres-核心/
我遵循以下步骤:
Server 1:
CREATE DATABASE
postgres=# \c a1
You are now connected to database "a1" as user "postgres".
a1=# CREATE SEQUENCE seq;
CREATE SERVER app_db
FOREIGN DATA WRAPPER postgres_fdw
OPTIONS (dbname 'postgres', host 'localhost');
CREATE USER MAPPING for postgres
SERVER app_db
OPTIONS (user 'postgres', password
我已经设置了一个PostgreSQL FDW服务器,其表如下,由user_id在四台服务器上共享:
CREATE TABLE my_big_table
(
user_id bigint NOT NULL,
serial bigint NOT NULL, -- external, incrementing only
some_object_id bigint NOT NULL,
timestamp_ns bigint NOT NULL,
object_type smallint NOT NULL,
other_type smalli
我使用PostgreSQL数据库和postgres_fdw扩展来查询外部数据。 CREATE EXTENSION postgres_fdw;
CREATE SERVER foreign_fake_database
FOREIGN DATA WRAPPER postgres_fdw
OPTIONS (host '....', port '5432', dbname 'fake_database'); 当我创建用户映射来查询这个外部数据库时,我必须输入clear、用户名和密码: CREATE USER MAPPING FOR fa
我试图通过一个函数使用以下函数创建一个使用FDW的外部服务器。但是,当我将主机的字符串常量替换为函数参数$1时,会出现语法错误。我在这里有遗漏什么吗?
CREATE OR REPLACE FUNCTION foreign_server_create(host_name text) RETURNS VOID
AS $$
CREATE SERVER postgres_server FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host $1, dbname 'xx', port 'xxxx');
$$ LANGUAG