我们对 SQL Server 进行了
.dacpac
部署,该部署使用带有键/值对的连接字符串:Integrated Security=True;
推送到我们的数据库效果很好,但我想知道它将使用哪个用户来进行更新。我们使用的发布配置文件未列出任何用户,并且其中的连接信息与 devops 版本相同。设置了一个部署组供其使用,但同样没有我可以看到的指定用户。我显然错过了一些东西。
我在网上的研究从 MS 那里得到了这一点:
当此属性值为 true 或 yes 时,DRDA 服务将使用 Windows 身份验证连接到 SQL Server。
- 连接凭据源自正在运行的 MsDrdaService.exe(从命令行运行时的服务帐户或登录用户)。
- 当使用值指定单独的联属应用程序参数时,连接凭据源自企业单点登录服务。有关更多信息,请参阅有关联盟应用程序的主题。
那么将其设置为 true 那么什么服务帐户将与部署绑定?所有这些都是在我接管之前设置的,而且我对 Azure DevOps 还很陌生,因此任何帮助都会很棒。
我知道我可以在连接字符串中提供用户名和密码,所以我并不是真的在寻找解决方案。我只需要知道在什么用户上下文下数据库将被更新,因为我无法指向实际帐户。
注意:我不是 DBA,因此我没有数据库上的任何日志访问或跟踪功能。
蒂亚
您尚未共享管道定义,但根据您的描述并假设您使用
Authentication Type
的 Active Directory - Integrated
,
根据SQL的参考文档,
连接到 SSDT 中的现有数据库 - SQL Server Data Tools (SSDT) |微软学习
Active Directory 集成身份验证:此身份验证方法使用 Kerberos 对 SQL Server 的用户进行身份验证。 Kerberos 是一种比 Active Directory 密码身份验证更安全的身份验证协议,但它要求客户端和服务器都加入 Active Directory 域。
使用 Microsoft Entra 身份验证和 SqlClient - ADO.NET Provider for SQL Server 连接到 Azure SQL |微软学习
要使用
身份验证模式,您必须拥有一个已加入到云中 Microsoft Entra ID 的本地 Active Directory 实例。例如,您可以使用 Active Directory 联合身份验证服务 (AD FS) 进行“联合”。 当您登录到加入域的计算机时,您可以访问 Azure SQL 数据源,而无需使用此模式提示输入凭据。您无法在 .NET Framework 应用程序的连接字符串中指定用户名和密码。对于 .NET Core 和 .NET Standard 应用程序,用户名在连接字符串中是可选的。在此模式下无法设置 SqlConnection 的Active Directory Integrated
Credential
属性。