Postgres:找不到"postgres"的用户映射



我已连接到架构apm

试图执行功能并以下错误:

ERROR:  user mapping not found for "postgres"

数据库连接信息说:

apm on postgres@PostgreSQL 9.6
psql version: PostgreSQL 9.6.3, compiled by Visual C++ build 1800, 64-bit

如何解决此错误?

这意味着您正在尝试使用外部表,并且您的角色(在这种情况下为postgres)没有为远程服务器定义用户和密码。

您可以通过执行此类查询来添加此信息:

 CREATE USER MAPPING
    FOR postgres
 SERVER remote_server_name
OPTIONS (user 'bob', password 'secret');

您可以获取表格的服务器名称:

SELECT srvname
  FROM pg_foreign_table t
  JOIN pg_foreign_server s ON s.oid = t.ftserver
 WHERE ftrelid = 'schemaname.tablename'::regclass

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

创建用户映射 - 将用户的新映射定义为外国 服务器

您的功能查询外来表,使用一些服务器,您需要用户映射。显然,它存在于用户所有者,而不是适合您的。或者只是使用创建用户映射的用户运行该功能。

您可以使用:

查看它们
SELECT um.*,rolname
  FROM pg_user_mapping um
  JOIN pg_roles r ON r.oid = umuser
  JOIN pg_foreign_server fs ON fs.oid = umserver;

如果要为所有用户创建用户映射,则可以像这样做

CREATE USER MAPPING
FOR PUBLIC
SERVER remote_server_name
OPTIONS (user 'bob', password 'secret');

相关内容

  • 没有找到相关文章

最新更新