繁体   English   中英

支持 Azure DB 中 postgres 服务器的跨数据库查询

[英]Support for cross database queries in Azure DB for postgres server

Azure DB for Postgres Server 是否支持跨数据库查询? Azure SQL 数据库不支持跨数据库查询,而 Azure SQL 托管实例和弹性池支持跨数据库查询!

如果在 Azure Postgres 服务器的“连接安全性”下禁用“拒绝公共网络访问”并启用“允许访问其他 Azure 资源”,则可以使用 dblink 扩展:

CREATE EXTENSION dblink;

SELECT dblink_connect('[connection_alias]','host=[azure_pg_hostname] port=5432
dbname=[other_db_name] user=[username]@[azure_pg_hostname] password=[password] sslmode=require');

SELECT * FROM dblink('[connection_alias]', 'select [field1], [field2] from public.[remote_table_name]') 
AS t([field1] [data type], [field2] [data type]);

或外部数据包装器扩展:

CREATE EXTENSION postgres_fdw;

CREATE SERVER [connection_alias]
FOREIGN DATA WRAPPER postgres_fdw  
OPTIONS (host '[azure_pg_hostname]', dbname '[other_db_name]', port '5432');

CREATE USER MAPPING FOR ([user_name] | CURRENT_USER)
SERVER [connection_alias]
OPTIONS (user '[user_name]@[azure_pg_hostname]', password '[password]');

CREATE FOREIGN TABLE [local_table_name] ( 
[field1] [data type], [field2] [data type]
)
SERVER [connection_alias]
OPTIONS (schema_name 'public', table_name '[remote_table_name]');

SELECT * from [local_table_name];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM