我们可以在 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 帐户吗?的主要内容,如果未能解决你的问题,请参考以下文章

在 Windows 容器中使用 gMSA

PHP - 访问文件夹共享网络

使用 LOGON32_LOGON_NETWORK 从 Delphi 反复调用 LogonUser 会导致帐户被锁定吗?

如何重新启动 Service Fabric 应用程序

如果我们在 Exchange Server 中使用 Admin 帐户,我们可以阅读所有用户的所有消息吗?

SQLite 库可以嵌入(链接)到 Delphi 可执行文件吗?