Postgres 的 C 库libpq 文档 http://www.postgresql.org/docs/9.2/static/libpq-pgpass.html讨论了一种更安全的方式来连接到数据库,而无需在源代码中指定密码。
我找不到任何如何做到这一点的例子。如何让我的 Postgre 服务器使用这个文件?请帮忙。
你没有将它导入到你的Python程序。要点是.pgpass
是它是一个受系统文件权限限制的常规文件,并且libpq驱动程序包含哪些库,例如psycopg2用于连接到Postgres将在该文件中查找密码,而不是要求密码位于源代码中或提示输入密码。
另外,这不是服务器端文件,而是客户端文件。所以,在 *nix 盒子上,你会有一个~/.pgpass
包含您希望能够建立的各种连接的凭据的文件。
编辑回应OP的评论:
为了实现这一目标,需要发生两件主要的事情psycopg2通过正确验证.pgpass
:
- Do not在传递给的字符串中指定密码
psycopg2.connect
- 确保将正确的条目添加到
.pgpass
将通过以下方式连接的用户的文件psycopg2.
例如,要使此功能适用于特定用户的所有数据库本地主机 port 5432,您将以下行添加到该用户的.pgpass
file:
localhost:5432:*:<username>:<password>
然后是connect
调用的形式如下:
conn = psycopg2.connect("host=localhost dbname=<dbname> user=<username>")
底层的libpq司机那个psycopg2然后使用将利用.pgpass
文件来获取密码。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)