如何在Windows中安全地存储数据库凭据?

时间:2018-08-15 13:52:51

标签: python sql-server windows pymssql database-security

我使用python和SQL-server管理数据库,但是我不了解有关数据库管理的“良好实践”,并且对安全信息了解很少。

在Windows中将数据库凭据保存为环境变量并通过os.environ将其用于脚本中是否安全?像这样:

import os
DB_HOST = os.environ['DBHOST']
DB_USER = os.environ['DBUSER']
... 

如何存储凭据以自动使用数据库?

3 个答案:

答案 0 :(得分:1)

如果您问是否应该为笔记本电脑永久设置环境变量-我会避免这种情况,因为任何进程都可以很容易地在PC上列出所有环境变量和相关的存储值。< / p>

相反-我建议您检出Keyring。这将使用Windows凭据锁定器(或其他特定于操作系统的密钥环服务)。

答案 1 :(得分:1)

通常,安全的凭据存储在与您当前环境相关的.env文件中,然后从您的代码中获取。例如DB_HOST = env('DBHOST')。

基本上现在您正在做什么,但是存储在文件中(根据需要安全,可能已加密),而不是直接作为环境变量使用,因为它们可以从整个计算机访问。

答案 2 :(得分:1)

通过在sqlserver中使用Encryptedbypassphrase('key','Your_Password')方法, 例子

create table #temp(id int identity(1,1),Password varbinary(max)) insert into #temp(Password) values(encryptbypassphrase('12','Passw0rd')) select * from #temp

  

在该代码中,我们提供了原始密码,但密码已存储在数据库中   按加密值表。

我的输出的屏幕截图:

For your ref Screenshot of my output is below,