因此,我有一个PostgreSQL数据库,并且我有一个脚本,该脚本使用db中的数据更新网站。在脚本中,我有以下代码:
conn = psycopg2.connect('dbname=name user=user password=password')
在不暴露脚本密码的情况下,是否有更好或更安全的方法连接数据库?
在Django中,settings.py文件有相同的问题。
感谢您的帮助。
答案 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具有秘密管理工具,可让您将密码存储为秘密。