mysql - 存储 Windows (NT) 服务使用的密码

标签 mysql windows service passwords credentials

在 Windows 本地网络上,我有一个 MySql 数据库、几个客户端应用程序(仅查询数据库)和一个定期填充数据库的 Windows NT 服务。 我正在寻找存储数据库凭据的最佳方式,以便所有应用程序都可以访问数据库。 对于客户端应用程序(由普通用户运行),我将凭据存储在 Windows 凭据管理器中,据我所知,它仅对特定用户可见。

我的问题是: 我最好将 MySql 凭据存储在哪里,以便 Windows 服务可以访问数据库?

提前致谢, 尼古拉斯

最佳答案

LsaStorePrivateDataLsaRetrievePrivateData函数是一种相当简单的存储和检索 secret 的方法。以这种方式存储的数据只能由对机器具有管理权限的人检索。这不提供 100% 的保护,但是(假设没有错误并且密码算法没有被破坏)如果 secret 必须由系统服务在没有人工干预的情况下检索,那么保护在逻辑上是可能的。

LsaStorePrivateData 没有内置的 GUI。您将需要编写一些代码来使用此函数来保存 MySql 凭据。 (但是,此代码可以位于与系统服务相同的可执行文件中,并通过命令行选项访问。)

关于mysql - 存储 Windows (NT) 服务使用的密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12135487/

相关文章:

mysql - 无法让 MySQL 在 OS X 10.9 上运行

mysql - MySQL 更新与 View 连接时出现问题

c# - AnonymousPipeServerStream.Read() 偶尔会在客户端退出时挂起

java - RabbitMQ 始终远程连接到 guest 用户

java - 获取上下文菜单中命令参数中的文件名

database - 服务间数据的引用完整性

php - 当名字和姓氏在不同字段中时,使用 PHP 在数据库中搜索全名

php - pdo 查询选择 2 个日期之间的记录

java - 服务中的 Android 位置管理器

java - 使用 Intent.createChooser 并收到错误 : Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag