在 Windows 本地网络上,我有一个 MySql 数据库、几个客户端应用程序(仅查询数据库)和一个定期填充数据库的 Windows NT 服务。 我正在寻找存储数据库凭据的最佳方式,以便所有应用程序都可以访问数据库。 对于客户端应用程序(由普通用户运行),我将凭据存储在 Windows 凭据管理器中,据我所知,它仅对特定用户可见。
我的问题是: 我最好将 MySql 凭据存储在哪里,以便 Windows 服务可以访问数据库?
提前致谢, 尼古拉斯
最佳答案
LsaStorePrivateData和 LsaRetrievePrivateData函数是一种相当简单的存储和检索 secret 的方法。以这种方式存储的数据只能由对机器具有管理权限的人检索。这不提供 100% 的保护,但是(假设没有错误并且密码算法没有被破坏)如果 secret 必须由系统服务在没有人工干预的情况下检索,那么保护在逻辑上是可能的。
LsaStorePrivateData 没有内置的 GUI。您将需要编写一些代码来使用此函数来保存 MySql 凭据。 (但是,此代码可以位于与系统服务相同的可执行文件中,并通过命令行选项访问。)
关于mysql - 存储 Windows (NT) 服务使用的密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12135487/