首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PostgreSQL 9.5:从dblink连接隐藏密码

PostgreSQL 9.5:从dblink连接隐藏密码
EN

Stack Overflow用户
提问于 2017-01-05 13:20:50
回答 1查看 4.9K关注 0票数 6

我想要你在另一个数据库里的桌子。

为此,我使用dblink

过程

步骤1:创建扩展。

代码语言:javascript
运行
复制
CREATE EXTENSION dblink;

步骤2:生成dblink连接字符串。

代码语言:javascript
运行
复制
select dblink_connect('con','host=127.0.0.1 dbname=makdb user=postgres password=postgres');

第3步:

代码语言:javascript
运行
复制
select * from dblink('con','select cola,colb from tbl_test') as tbl(cola int,colb varchar(10));

我的问题:如何在步骤2中隐藏密码?

通过搜索,我了解到我需要创建.pgpass文件。但是在如何创建和在哪个步骤中我需要使用那个文件名的问题上陷入了困境。

EN

回答 1

Stack Overflow用户

发布于 2020-03-09 14:52:42

安装dblink扩展:

代码语言:javascript
运行
复制
CREATE EXTENSION dblink;

安装postgres_fdw扩展(可用于访问存储在外部PostgreSQL服务器中的数据):

代码语言:javascript
运行
复制
CREATE EXTENSION postgres_fdw;

创建新的外部服务器连接:

代码语言:javascript
运行
复制
CREATE server myserver foreign data wrapper postgres_fdw
OPTIONS (dbname 'foreign_dbname', host 'foreign_host');

为最近创建的外部服务器连接和数据库创建用户映射。

代码语言:javascript
运行
复制
CREATE USER MAPPING FOR "user_in_current_database"
SERVER myserver OPTIONS (user 'foreign_user', password 'foreign_password');

选择远程数据库中的某些字段,并创建conexion。注意,您不需要更多地使用用户和密码。

代码语言:javascript
运行
复制
SELECT tmp_table.*
FROM dblink(
             'myserver',
             '
             SELECT field1,
                 field2
             FROM table
             '
         )
         AS tmp_table(
                      field1 TEXT,
                      field2 BIGINT
        );

更多信息:

https://www.postgresql.org/docs/9.5/postgres-fdw.html

https://www.postgresql.org/docs/current/sql-createserver.html

https://www.postgresql.org/docs/current/sql-createusermapping.html

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41486198

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档