16

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

  1. 运行 ASP.NET 的 Windows 容器
  2. 运行 SQL Server 的 Windows 容器

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

在所有示例中,密码都是硬编码的。

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

那么有没有人可以用这种方式硬编码密码呢?

4

3 回答 3

1

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

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

消息 15401,级别 16,状态 1,第 3 行 Windows NT 用户或组 'YOUR_DOMAIN\gmsa$' 未找到。再次检查名称。

于 2017-01-19T10:53:46.577 回答
0

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

于 2017-12-24T03:03:08.947 回答
0

这是如何使其工作的演练。Windows 容器演练

如果您的 SQL 也在容器中运行,这将不起作用,因为 SQL 服务器本身必须是 Active Directory 的一部分才能使用 GMSA 帐户。

于 2017-01-22T19:27:01.607 回答