问题标签 [azure-postgresql]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
800 浏览

azure-functions - 从公共 Azure 函数到 Azure PostgreSQL 的安全连接

语境

  • 可从 Internet 访问的 Azure 函数(想想公共 API)。
  • Function 应用程序托管在Elastic Premium计划中。
  • Azure 管理的 PostgreSQL 实例(GP计划)。

目标

使 PostgreSQL 实例仅可供函数应用程序访问,同时保持函数应用程序可从 Internet 访问。

我试过的

  1. 创建 VNet 和启用服务终结点的子网。
  2. 将 VNet 规则添加到 PostgreSQL 实例,仅保护来自该子网的访问。
  3. 将函数应用与 VNet 集成。

这应该足以限制对数据库的访问,但它具有无法从 Internet 访问 Function App 的副作用。我相信 AppInsights 也无法访问 Function App(进入Unable to open a connection to your app. This may be due to any network security groups or IP restriction rules that you have placed on your app.监视器)。

在 AWS 世界中,我将 Lambda 和数据库实例放在私有子网中,并为 Lambda 的 Internet 访问添加一个 NAT 网关。经过广泛的研究,我无法弄清楚如何使用 Azure 实现这一目标。

如果有替代方法,请告诉我!

0 投票
0 回答
312 浏览

azure-active-directory - 使用 Azure AD 连接到 Azure Database for PostgreSQL

我们正在尝试使用 AD 连接到 azure postgres DB,并按照以下文档 url https://docs.microsoft.com/en-us/azure/postgresql/howto-configure-sign-in-aad-authentication中提供的说明进行操作

连接到 postgres 数据库时出现以下错误。我使用此“az account get-access-token --resource https://ossrdbms-aad.database.windows.net”命令手动验证了用户的对象 ID 和租户 ID 和令牌的租户 ID。两者似乎都很好。仍然低于错误。

Azure AD 访问令牌对角色 xxxxx@tenant.onmicrosoft.com 无效(oid 或 appid 声明与 9d8b7b0a-9139-4c86-a5f1-ed39134b8699 不匹配) 提示:您是否指定了正确的用户名和访问令牌?

0 投票
1 回答
795 浏览

postgresql - 如何使用用户名和密码从 Azure AD 检索到的令牌对 Azure PostgreSQL 进行身份验证?

我使用了https://docs.microsoft.com/en-us/azure/postgresql/howto-configure-sign-in-aad-authentication中的文档,使 Azure AD 中的用户能够使用令牌。我希望 Java 桌面应用程序的用户能够使用他们的用户名和密码进行身份验证并自动获取令牌。为此,我在我的租户中创建了一个公共应用程序。我使用用户名和密码进行身份验证以获取访问令牌没有问题,但该令牌显然不适合针对https://ossrdbms-aad.database.windows.net进行身份验证。

我收到错误消息“致命:访问令牌没有有效签名或已过期。请获取新令牌并重试。”

这是我正在使用的代码:

我认为问题在于我需要将https://ossrdbms-aad.database.windows.net/default(或https://ossrdbms-aad.database.windows.net//.default)指定为资源或范围. 当我用这个替换 User.Read 时,我收到错误“AADSTS65001:用户或管理员未同意使用 ID 为 '096f6bc7-cf30-4b06-9f0e-093aaf3f9a4c' 名为 'AuthTest' 的应用程序。发送交互式授权请求对于这个用户和资源。”,这是可以理解的,因为我没有像对 User.Read 一样通过门户授予同意。但我不知道如何授予此同意。

0 投票
1 回答
84 浏览

python - 如何将文件从 postgreSQL 保存到本地?

我要求在 Azure PostgreSQL 中托管的表中保存大量文件(例如图像、.csv)。文件保存为二进制数据类型。是否可以通过 SQL 查询将它们直接提取到本地文件系统?我使用 python 作为我的编程语言,感谢任何指南或代码示例,谢谢!

0 投票
1 回答
54 浏览

postgresql - azure postgresql 服务器的电子邮件功能

如何在可以发送电子邮件的 azure postgresql 服务器中编写代码。由于 Azure postgresql 服务器完全由 azure 管理,除了有限的可用扩展之外,没有其他选项可以安装扩展。

0 投票
1 回答
117 浏览

gitlab - 在 Gitlab EE 中配置 Azure PostgreSQL

我正在寻找有关如何在基于 Docker Swarm 的 Gitlab 实例中配置 Azure PostgreSQL DB 的帮助。

最初,我遵循https://docs.gitlab.com/13.6/ee/administration/postgresql/external.html中的文档。然而我发现默认提供的用户是username的形式,而 Azure 要求它是username@hostname的形式。我尝试在 gitlab.rb 文件 ( gitlab_rails['db_username'] = 'username@hostname') 中传递用户名,但它仍然失败,即使在将 @ 替换为 %40 作为 URI 编码后也是如此。

经过一番广泛的搜索,我找到了这个文档 - https://docs.gitlab.com/13.6/ee/administration/environment_variables.html,它建议使用DATABASE_URL环境变量来设置表单中的完整连接字符串postgresql://username:password@hostname:port/dbname,我这样做了它确实解决了 Gitlab 本身与 Azure PostgreSQL 通信的问题(在这种情况下,我根据 Azure 要求将用户名替换为 username%40hostname)。

唉,成功是短暂的,后来我发现Puma和Sidekiq都无法连接到数据库,总是抛出以下错误:

经过一番搜索,我发现gitlab-ctl启动Gitlab实例时会生成以下文件:

(删除的数据库和用户名)

它几乎忽略了DATABASE_URLenv 变量并假定 gitlab.rb 中现在不存在的配置参数。

所以,现在,我有点别无选择,想知道是否有人遇到过类似的问题,如果有,你如何克服这个问题。

任何帮助表示赞赏。

提前致谢。

0 投票
1 回答
730 浏览

postgresql - 通过 CLI 重置 Azure PostgreSQL 服务器用户密码

如何通过 CLI 在 Azure Postgresql Server 中更改/重置用户的密码。我知道有一种方法可以通过 Portal 重置密码,但我正在寻找通过 Azure CLI 重置密码。

我试过ALTER USER {user} WITH PASSWORD '{password}';了,但它需要超级用户访问。据我所知,没有授予 azure_superuser 访问权限,所以有什么方法可以通过 CLI 重置?

0 投票
1 回答
1318 浏览

azure - 子网之间的 Azure postgres 数据库专用连接

我尝试将子网 sub_A 中的应用程序连接到子网 sub_B 中具有私有端点的 postgresql 数据库,但仍然无法执行此操作。

我做了很多尝试,我能够从 sub_B 中的 VM 连接到数据库,所以我认为问题来自 sub_A,但这是我在数据库服务器上配置的 sub_A 和 sub_B 的 vmnet 规则的配置。

我使用服务端点“Microsoft.Sql”配置两个子网

当我尝试通过私有端点连接数据库时,我仍然收到错误 error: FATAL: Client from Azure Virtual Networks is not allowed to access the server using Private IP. Please make sure your Virtual Network is correctly configured.

你能帮我告诉我我错过了什么吗?

0 投票
2 回答
998 浏览

postgresql - ADF-Postgres 超时

我正在使用 ADF 和 Azure 托管 Postgres。我经常遇到查找和查询来源的复制活动在大约 35 秒后超时的问题。

所以错误说这是一个 Npgsql 异常,所以我查看了他们的文档并修改了连接字符串以采用 Timeout = 60 和 CommandTimeout = 60(内部超时将默认为 CommandTimeout)。

并且查询仍然超时约 35 秒。这可能是导致超时的 Azure 托管实例的套接字问题,并且它只是传播到 npgsql 吗?

任何帮助,将不胜感激!

0 投票
1 回答
177 浏览

entity-framework - 带有托管标识文档的 EF Core + Azure PostgreSQL?

MS 有 EF Core + Azure SQL with Managed Identity 的文档。两年前的这篇 SO 帖子也对它以及一些替代实现进行了深入讨论。

但是我找不到与 EF Core 一起使用的 Azure PostgreSQL 的任何东西,它也支持托管标识。

MS 在此处有 Azure PostgreSQL 托管标识的通用文档: https ://docs.microsoft.com/en-us/azure/postgresql/howto-connect-with-managed-identity

似乎表明在常规 PostgreSQL 连接字符串中用访问令牌替换密码是它的工作原理。

那么使用 EF Core 实现这一点的最佳方法是什么?

任何建议或相关文档的链接将不胜感激。