如何使用psycopg2连接提高安全性?

时间:2019-01-23 20:45:38

标签: python postgresql security psycopg2

因此,我有一个PostgreSQL数据库,并且我有一个脚本,该脚本使用db中的数据更新网站。在脚本中,我有以下代码:

conn = psycopg2.connect('dbname=name user=user password=password')

在不暴露脚本密码的情况下,是否有更好或更安全的方法连接数据库?

在Django中,settings.py文件有相同的问题。

感谢您的帮助。

5 个答案:

答案 0 :(得分:0)

一种可能的方法是将密钥链存储在权限控制的目录中,并使脚本读取该凭证文件以提取用户名和密码。这样,您可以屏蔽可查看脚本但没有目录访问权限的凭据。

答案 1 :(得分:0)

将其放入变量中,然后将其存储在模块/包中,并在您的脚本中编写:

from *libname* import sqlpassword

conn = psycopg2.connect('dbname=name user=user password=sqlpassword')

答案 2 :(得分:0)


您必须存储您的Postgresql凭据,并且不要在.py脚本中对其进行硬编码。为此,建议您使用django-decouple模块。
使用此模块,您可以将数据库凭据存储在{<1 />}这样的.env文件中

DB_NAME=DB_NAME
DB_USER=DB_USER
DB_PASSWORD=DB_PASS
DB_HOST=localhost
DB_PORT=5432

然后您就可以在python或django项目中使用它,就像喝一杯茶一样简单:)

相关链接:
djang-decouple官方页面
https://pypi.org/project/django-decouple/
简单易用的好教程,学习如何使用django-decouple
https://simpleisbetterthancomplex.com/2015/11/26/package-of-the-week-python-decouple.html

最诚挚的问候。

答案 3 :(得分:0)

在安全的JSON文件中添加凭据并加载该文件,以将变量导入psycopg2.connect函数。

答案 4 :(得分:0)

AWS和Databricks具有秘密管理工具,可让您将密码存储为秘密。