postgresql - 如何处理 Postgresql URL 连接字符串密码中的特殊字符?

标签 postgresql url connection-string postgresql-9.1

使用以下格式的 Postgresql URL 连接字符串:

postgresql://user:secret@localhost

我如何处理该字符串中的特殊字符(例如,$)以便它在我连接到我的 postgres 数据库时真正发挥作用?

我试过简单地对其进行 URL 编码,例如,“test$”变成“test%24”……但这似乎是个问题,因为我在尝试时收到“FATAL: password authentication failed”错误使用它。

最佳答案

参见 Connection URIs在文档中。

您的问题中有些地方似乎不太正确:

  • postgres 仅从 9.2 版本开始支持 URI,因此对于 9.1 客户端来说根本无法工作。或者,您正在使用自己实现连接 URI 的客户端。

  • 支持百分号编码。根据文档:

    Percent-encoding may be used to include symbols with special meaning in any of the URI parts.

  • 美元字符甚至不需要百分比编码。

尝试使用 9.3:

sql> 更改用户 daniel 密码 'p$ass';

$ psql 'postgresql://daniel:p$ass@localhost/test'

作品

$ psql 'postgresql://daniel:p%24ass@localhost'

作品

psql 'postgresql://daniel:pass@localhost/test'

如预期的那样失败:密码错误。

关于postgresql - 如何处理 Postgresql URL 连接字符串密码中的特殊字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23353623/

相关文章:

c# - 配置字符串的 Winforms 连接属性对话框

java - 如何在 Spring Boot 的 native 查询中使用 all(array[])?

java - URLClassLoader 无法处理 jar :file urls?

javascript - 如果 Sequelize 中不存在嵌套记录,如何获取所有记录

c# - MVC 从 ReturnURL 获取 ID

javascript - URL 片段标识符 - 简化状态处理 (javascript)

.net - Azure WebJob 存储连接

c# - ConfigurationManager - 如何在 .NET 3.5 中使用连接字符串?

postgresql - JHipster-Liquibase : How to upload an Image file blob?

sql - 使用 postgresql 创建记录时出现编译时错误 :jsonvalue type in Ballerina