gpt4 book ai didi

python - Postgres 数据库安全 : what to store in environment variables?

转载 作者:搜寻专家 更新时间:2023-10-30 21:49:01 26 4
gpt4 key购买 nike

我使用 SQLAlchemy 连接了一个 Postgres 数据库。

我目前将数据库的连接参数(数据库名称、主机、端口、用户名、密码)全部硬编码在 Python 文件中。我想改变它。

我读了here那一个应该将这些参数存储在环境变量中。在五个连接参数中,我应该在环境变量中存储什么?

显然我会存储密码,但我是否应该另外存储用户名和主机?这里的约定是什么?

最佳答案

将设置放在环境变量中不仅仅是为了安全。它还与灵 active 有关。 Anything that's likely to change between environments是放置在环境变量中的一个很好的候选对象。

考虑您的数据库。主机、用户名和数据库名称在不同环境中是否可能不同?我怀疑是这样。许多项目可能会在 localhostdocker-compose.yml 中名为 db 的 Docker 镜像上使用数据库生产中的数据库服务器或托管数据库。

一种常见的模式是在单个环境变量 DATABASE_URL 中对整个数据库连接字符串进行编码。格式¹类似于

<engine>://<user>:<password>@<host>:<port>/<database>

例如,你可以使用类似的东西

postgres://db_user:password@localhost/app_db

许多数据库库,including SQLAlchemy可以直接使用这个字符串连接到数据库。


¹这是关于 regular URL syntax 的特化.

关于python - Postgres 数据库安全 : what to store in environment variables?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55598010/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com