Windows环境下的密码文件?


1

我正在寻找一种方法来在工作机器上存储数据库密码,以便我自己的应用程序可以读取它(为了连接到数据库),但没有管理权限的用户无法读取它。管理员必须可以更改密码,最好是自动更改密码。

我想到的是类似的东西 PostgreSQL的.pgpass文件 在Linux环境中。这也适用于Windows环境吗?

我认为密码文件只能供管理员访问。但是,对用户可执行的程序是否也可以访问此文件?此外,是否可以借助组策略通过网络分发此类文件?


我正在考虑的其他解决方案(可能需要付出更多努力):

  1. 加密密码文件。只有应用程序和管理员具有解密和更改/读取文件的有效密钥。
  2. 从网络资源中检索密码,也可能是加密的。

1
您可以通过安装Bitlocker encrypted.VHDX文件在Windows 8.0+中实现此目的。我不确定你提到的“应用程序”。您还可以通过在支持EFS的Windows版本上使用EFS来实现此目的。如果使用EFS,则可以以纯文本格式存储密码,因为用户配置文件中的所有文件都是加密的,只有拥有证书的用户才能访问。
Ramhound

@Ramhound我指的是 我自己的 我将开发的应用程序(编辑问题)。如果这是一种可行的方法,我将研究Bitlocker主题。用C#API访问它会很酷。
Markus L

Answers:


1

在回答有关管理员访问权限的问题时 -

Windows使用用户的权限执行服务(除非您专门以管理员或其他用户身份运行),因此如果用户无权访问文件,则程序也不会。

在回答集体政策问题时─

是的,您可以使用组策略通过组策略首选项分发文件。 (看到: https://www.adamfowlerit.com/2016/07/group-policy-preferences-replace-existing-file/


感谢清除用户权利 - 这听起来合乎逻辑。还要感谢这个链接 - 这将让我开始。
Markus L

0

如果有人感兴趣:我提出了以下解决方案。

密码以加密方式存储在XML文件(“密码容器”)中。可以使用管理员密码打开和编辑容器。加密是对称的。容器放在网络资源上,只需在网络目录中。

应用程序被赋予密码容器的​​位置,并且能够打开密码容器,因为管理员密码存放在代码中。

我知道这个解决方案不是100%安全的,因为密码不应该存储在代码中。但是,对于这些要求(数据库密码应对用户隐藏,数据库密码必须是可管理的),解决方案就足够了。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.