如何使用SQL Server docker容器进行Windows身份验证

时间:2016-12-30 15:12:09

标签: sql-server docker docker-container docker-windows

我已经浏览了所有我在网上找到的用于构建基于docker容器的应用程序的示例。我想运行在两个docker容器中运行的两个服务:

  1. 运行ASP.NET的Windows容器
  2. 运行SQL Server的Windows容器
  3. 轻松的工作和许多例子。但是,在所有示例中,您需要使用SQL身份验证,并在运行SQL Server容器时提供硬编码的SA密码作为环境变量。您还需要将SA密码硬编码到ASP.Net代码中的连接字符串中(或者在配置文件中以其他方式提供它等)

    在所有示例的底线中,密码在某处都是硬编码的。

    在我们现在开发的大多数应用程序中,我们实际上使用的是Windows身份验证,或者使用分组的托管服务帐户。但据我所知,你不能将Windows容器添加到域,因此SQL服务器不是Windows域的一部分,所以我没有看到在这里使用Windows身份验证的方法。

    那么任何人都可以用这种方式替代硬编码密码吗?

3 个答案:

答案 0 :(得分:1)

我正在处理同样的问题。 Here是我找到的最完整的程序。 诀窍是使用gMSA。

但是,正如JanneRantala最后所说,我在尝试在数据库中添加新用户时遇到了同样的问题:

  

Msg 15401,Level 16,State 1,Line 3   Windows NT用户或组' YOUR_DOMAIN \ gmsa $'未找到。再次检查名称。

答案 1 :(得分:1)

在Windocks SQL Server容器中自动启用Windows身份验证。有关详细信息,请参阅here。 在Windocks中创建的SQL Server容器是从已安装在Windows Server(2012 R2或2016)上的默认SQL服务自动创建的SQL Server命名实例。默认实例中的任何Windows帐户都将在容器实例中自动启用。

答案 2 :(得分:0)

以下是如何使其工作的演练。 Windows Containers Walkthrough

如果您的SQL也在容器中运行,这将无效,因为SQL Server本身必须部分Active Directory才能使用GMSA帐户。