我想使用 Azure Backup Vault 备份 Azure PostgreSQL Single Server 实例,该实例仅可通过私有终结点使用。我已在其中创建了备份保管库和备份实例,但遇到了以下错误:
信息:无法验证数据库用户身份。如果密钥保管库中的凭据(用户名和/或密码)不正确或指定的用户没有登录权限,则可能会发生这种情况。
建议:确保密钥保管库中作为机密值的一部分存储的凭据有效。确保指定的数据库用户具有登录访问权限。有关详细信息,请参阅 aka.ms/UserErrorDBUserAuthFailed。
我使用此示例代码通过 Terraform AzureRM 提供程序创建备份实例:https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/data_protection_backup_policy_postgresql
密钥保管库中存储的凭据包括:
❯ terraform console
> module.azure-infrastructure.foobar
"Server=<server-name>.postgres.database.azure.com;Database=<database>;Port=5432;User Id=<database>@<server-name>.postgres.database.azure.com;Password=<password>;Ssl Mode=Require;"
用户名和密码是正确的(我 100% 确定),因为我们在私有网络中运行了一些可以使用这些凭据连接到数据库的服务。在数据库日志中,我看不到备份期间的任何身份验证失败。
我目前的猜测是,备份库无法访问仅通过私有端点可用的数据库实例。我之所以这么想,是因为如果我尝试使用故意错误的凭据登录 PostgreSQL 服务器,则会将以下内容写入日志:
password authentication failed for user \"dbadmin\"
但是,当备份尝试运行时,日志中没有写入任何类似内容。关于如何让备份在专用网络内运行,您有什么想法吗?
或者如何备份在私有网络中运行的 Azure PostgreSQL 单服务器数据库?
谢谢,