避免硬编码你的PostgreSQL数据库密码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了避免硬编码你的PostgreSQL数据库密码相关的知识,希望对你有一定的参考价值。

一个密码文件包含了我们需要连接的五个字段,所以我们可以使用文件权限来使密码更安全。

host:port:dbname:user:password

such as myhost:5432:postgres:sriggs:moresecure

密码文件是使用一个叫PGPASSFILE的环境变量来设置的。如果PGPASSFILE没有设置,然后,一个默认的文件名和位置被搜索:

 在*nix系统,检查~/pgpass.

 在Windows系统,检查%APPDATA%\postgresql\pgpass.conf,%APPDATA%是路径中应用数据子目录(对我来说,是C:\)

在*nix系统,chmod 0600 ~/.pgpass

密码文件可以包含多行。每行与请求的host:port:dbname:user组合匹配,直到我们找到一行匹配行,然后我们使用那个密码。

每个条目可以是一个文本值或*一个可以匹配任何字符的通配符。不支持部分匹配。不支持部分匹配。有了适当的权限,用户可以连接到任何数据库。在dbname和port字段使用通配符是有意义的,虽然在其他字段是没有意义的。示例如下:

host:port:dbname:user:password

myhost:5432:*:sriggs:moresecurepw

myhost:5432:perf:hannu:okpw

myhost:*:perf:gabriele:maggioresicurezza

如果你有少量的数据库服务器,这看起来是一个很好的改进。如果你有许多不同的数据库服务器,你可能想使用一个连接服务的文件,或者是把细节存储在LDAP服务器中。

以上是关于避免硬编码你的PostgreSQL数据库密码的主要内容,如果未能解决你的问题,请参考以下文章

MediaCodec 硬编码

避免硬编码 Hibernate 属性

如何避免在 COBOL 程序中硬编码凭据?

RStudio 和 SVN:如何提示连接细节以及如何避免硬编码?

如何使用 PostgreSQL 加密密码?

密码硬编码(Password Management: Hardcoded Password)