PostgreSQL 9.5:隐藏 dblink 连接的密码

2024-03-28

我想要位于另一个数据库中的表。

我正在使用dblink为了这。

程序:

第 1 步:创建扩展。

CREATE EXTENSION dblink;

步骤2:制作dblink连接字符串。

select dblink_connect('con','host=127.0.0.1 dbname=makdb user=postgres password=postgres');

Step 3:

select * from dblink('con','select cola,colb from tbl_test') as tbl(cola int,colb varchar(10));

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

通过搜索我开始知道我需要创建.pgpass文件。但陷入了如何创建以及在哪一步中我需要使用该文件名的问题。


安装 dblink 扩展:

CREATE EXTENSION dblink;

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

CREATE EXTENSION postgres_fdw;

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

CREATE server myserver foreign data wrapper postgres_fdw
OPTIONS (dbname 'foreign_dbname', host 'foreign_host');

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

CREATE USER MAPPING FOR "user_in_current_database"
SERVER myserver OPTIONS (user 'foreign_user', password 'foreign_password');

选择创建了 conexion 的远程数据库中的一些字段。请注意,您不再需要使用用户名和密码。

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/9.5/postgres-fdw.html

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PostgreSQL 9.5:隐藏 dblink 连接的密码 的相关文章

随机推荐