Sql server 如何安全地向SQLServer2017 linux Docker容器提供SA密码?

Sql server 如何安全地向SQLServer2017 linux Docker容器提供SA密码?,sql-server,docker,docker-compose,Sql Server,Docker,Docker Compose,Docker的常见设置:两个linux容器,一个是使用EntityFramework的.NET核心Web服务器,另一个是MS SQLServer 2017。持久数据保存在Docker卷中。使用docker compose,它不是一个蜂群 启动SQLServer容器时,必须将SA密码作为环境变量提供给容器。但是,您可以在以后使用docker container inspect从容器外部读取此env。这显然会危及安全 这就引出了两个问题: 有什么更好的方法向SQLServer提供SA密码? (在中讨

Docker的常见设置:两个linux容器,一个是使用EntityFramework的.NET核心Web服务器,另一个是MS SQLServer 2017。持久数据保存在Docker卷中。使用
docker compose
,它不是一个蜂群

启动SQLServer容器时,必须将SA密码作为环境变量提供给容器。但是,您可以在以后使用
docker container inspect
从容器外部读取此env。这显然会危及安全

这就引出了两个问题:

  • 有什么更好的方法向SQLServer提供SA密码?

  • (在中讨论)Microsoft帮助指出,最好在启动容器后直接更改SA密码。当我在Web服务器代码中这样做时,EntityFramework已经与默认SA密码(我作为env提供的密码)连接。我可以很容易地更改密码。但是我如何告诉EntityFramework重置它的ConnectionString呢?(更多关于链接线程的信息)

  • 有什么更好的方法向SQLServer提供SA密码
  • 您需要使用一个容器群来实现这一点。完成此操作后,您可以使用来传递凭据

  • Microsoft帮助说明,最好在启动容器后直接更改SA密码。当我在我的Web服务器上这样做时 代码,EntityFramework已与默认SA连接 密码(我作为env提供的密码)。我可以更改密码 很容易。但是我如何让EntityFramework重置它的 连接字符串
  • 单个容器群自动解决了这个问题。每次更新
    机密时,docker都会终止所有使用修改过的机密的容器,并使用新的机密重新初始化它们。而且,docker会自动完成。肯定会有停机时间,为了防止停机,您可以放置两个容器,然后开始一次停机

    编辑:使用swarm模式,您不必担心更改
    docker compose
    文件,因为同一个文件以及一些添加的字段可以用作
    docker堆栈
    文件

  • 有什么更好的方法向SQLServer提供SA密码
  • 您需要使用一个容器群来实现这一点。完成此操作后,您可以使用来传递凭据

  • Microsoft帮助说明,最好在启动容器后直接更改SA密码。当我在我的Web服务器上这样做时 代码,EntityFramework已与默认SA连接 密码(我作为env提供的密码)。我可以更改密码 很容易。但是我如何让EntityFramework重置它的 连接字符串
  • 单个容器群自动解决了这个问题。每次更新
    机密时,docker都会终止所有使用修改过的机密的容器,并使用新的机密重新初始化它们。而且,docker会自动完成。肯定会有停机时间,为了防止停机,您可以放置两个容器,然后开始一次停机

    编辑:使用swarm模式,您不必担心更改
    docker compose
    文件,因为同一个文件以及一些添加的字段可以用作
    docker堆栈
    文件