在 Windows 本地网络上,我有一个 MySql 数据库、几个客户端应用程序(仅查询数据库)和一个定期填充数据库的 Windows NT 服务。我正在寻找存储数据库凭据的最佳方式,以便所有应用程序都可以访问数据库。对于客户端应用程序(由普通用户运行),我将凭据存储在 Windows 凭据管理器中,据我所知,该凭据仅对特定用户可见。
我的问题是:最好将 MySql 凭据存储在哪里,以便 Windows 服务可以访问数据库?
在此先感谢,尼古拉斯
在 Windows 本地网络上,我有一个 MySql 数据库、几个客户端应用程序(仅查询数据库)和一个定期填充数据库的 Windows NT 服务。我正在寻找存储数据库凭据的最佳方式,以便所有应用程序都可以访问数据库。对于客户端应用程序(由普通用户运行),我将凭据存储在 Windows 凭据管理器中,据我所知,该凭据仅对特定用户可见。
我的问题是:最好将 MySql 凭据存储在哪里,以便 Windows 服务可以访问数据库?
在此先感谢,尼古拉斯
LsaStorePrivateData和LsaRetrievePrivateData函数是存储和检索秘密的相当简单的方法。以这种方式存储的数据只能由对机器具有管理访问权限的人检索。这并不能提供 100% 的保护,但是(假设没有错误并且加密算法没有被破坏)如果必须由系统服务在没有人工干预的情况下检索秘密,则保护在逻辑上是尽可能好的。
LsaStorePrivateData 没有内置的 GUI。您将需要编写一些代码来使用此函数来保存 MySql 凭据。(但是,此代码可以与系统服务位于同一可执行文件中,并通过命令行选项访问。)
该服务也以用户身份运行,那么为什么不能使用相同的方法呢?这假设该服务作为其自己的用户或其他一些安全帐户运行。