从连接字符串中没有密码的Linux容器中调用SQL Server

问题描述 投票:0回答:1

我正在转换服务以在Linux容器上运行。当前,该服务在Windows VM的IIS中运行。

它以对数据库具有权限的Lan用户身份运行。因此,连接字符串使用集成安全性。

但是容器不能加入域。因此,据我了解,该选项已退出。

我对Windows容器进行了研究,发现它支持在容器主机上作为组托管服务帐户(gMSA)运行,并且将作为“网络服务”进行的调用交换到gMSA。 (允许通过容器主机使用域用户。)

但是我似乎找不到Linux容器的类似功能。

是否所有在Linux容器中运行的进程都只是将用户名和密码放入其数据库连接字符串中?

或者有没有更好的方法可以在Linux容器中传达身份?

为我的特定设置提供更多详细信息:

  • 运行Linux容器
  • 正在运行.NET Core 2.2
  • 最终在Kubernetes中运行
  • 数据库是Microsoft SQL Server
linux windows containers linux-containers
1个回答
0
投票

将有助于您了解更多设置,但随着手头的信息,我可以看到3个选项。

  • 选项1:

根据Docker机密管理凭据

https://docs.docker.com/engine/swarm/secrets/

docker container exec <CONTAINER_ID> \
bash -c 'mysqladmin --user=wordpress --password="$(< /run/secrets/old_mysql_password)" password "$(< /run/secrets/mysql_password)"'
  • 选项2:

取决于您使用的是哪种数据库,您可以将密码添加到配置中,例如在mysql的my.conf中。

[client]
password = 123
  • 选项3:

取决于您的网络堆栈,您可以改为在数据库中设置权限。允许IP访问数据库。但是我还是建议其他选择之一。

© www.soinside.com 2019 - 2024. All rights reserved.