我们可以在 Delphi 中模拟 gMSA 帐户吗?
Posted
技术标签:
【中文标题】我们可以在 Delphi 中模拟 gMSA 帐户吗?【英文标题】:Can we Impersonate gMSA account in Delphi? 【发布时间】:2020-01-09 18:00:36 【问题描述】:我需要使用 gMSA 帐户从我的 delphi 应用程序连接 SQL Server。那么,我可以使用 delphi 的 LogonUser() 来模拟这个 gMSA 帐户吗?如果是,我需要为此 LogonUser() 提供什么密码作为参数?
请指教。
【问题讨论】:
【参考方案1】:S 代表服务。如果您作为用 Delphi 编写的服务运行,您只需在 Delphi 中设置 SQL Server 连接组件以使用 OS 身份验证。无需用户名或密码。
如果您是作为应用程序运行,那么不 - 组托管服务帐户不适合您。
【讨论】:
我正在使用一个应用程序。由于安全原因,我无法使用 SQL 用户身份验证。 如果您将 SQL Server 客户端连接设置为使用 OS 身份验证,它将使用登录用户对 SQL Server 进行身份验证。或者,您可以在启动应用程序时使用runas 以其他用户身份运行它。在这两种情况下,您都不会在 SQL Server 客户端连接中填写用户名或密码。 我们可以使用模拟来传递其他用户的安全上下文而不是登录用户。我试过了,它连接到数据库没有问题。但是在这里,我需要在某处保存密码。相反,我想使用 gMSA 帐户进行模拟。但我不知道,我需要提供什么密码作为 LogonUser() 的参数?我尝试使用空字符串和 nil。都失败了以上是关于我们可以在 Delphi 中模拟 gMSA 帐户吗?的主要内容,如果未能解决你的问题,请参考以下文章
使用 LOGON32_LOGON_NETWORK 从 Delphi 反复调用 LogonUser 会导致帐户被锁定吗?