我创建了Python脚本来截断Oracle表。我使用SQL Plus,但是问题是我必须隐藏现在是纯文本的密码。我有这样的论点:
expect((req.request.body)).toBe(JSON.stringify(dummyPost));
然后我运行以下命令:
db_name = "DB_NAME"
db_user = "DB_USER"
db_password = "DB_PASS"
一切正常,但是问题是密码。据我所知,SQL Plus不使用jceks文件。那么其他隐藏密码的解决方案是什么?
答案 0 :(得分:1)
在Linux上,可以创建如下bash脚本:
# sql.env
export db_PSSWD='pswd'
export db_USER='user'
在运行python之前,请运行bash-script初始化环境变量:
source sql.env
然后,在python
中:
db_psswd = os.environ.get("db_PSSWD")
db_user = os.environ.get("db_USER")
答案 1 :(得分:1)
您可以使用类似Django SECRET_KEY
的解决方案,该解决方案存储在项目存储库之外的文件中。从这个文件中,我在settings.py
中加载这样的键:
with open(os.path.join(ROOT_DIR, 'etc/secret_key.txt')) as f:
SECRET_KEY = f.read().strip()
在上面的示例中,文本文件的内容只是关键,但是您可以使用JSON,YAML甚至Python文件等结构化格式并将其导入。
Python机密文件示例:
# secret.py
DB_PSSWD='pswd'
DB_USER='user'
只需在您的源代码中:
import secret
print(DB_USER)
YAML机密文件示例:
# secret.yaml
db_psswd: pswd
db_user: user
只需在您的源代码中:
import yaml
with open('secret.yaml') as yaml_secret:
rules = yaml.load(cfg)
print(rules['db_user'])