.Net Core Linux容器无法使用SQL身份验证连接到SQL Server

时间:2019-07-24 12:27:52

标签: sql-server docker .net-core

在Linux Docker容器中运行的.Net Core 2.2应用程序无法使用SQL身份验证向另一台计算机上的SQL Server进行身份验证。错误消息是:

  

无法使用Kerberos进行身份验证。确保Kerberos已在客户端上使用“ kinit”初始化,并且已为SQL Server注册了服务主体名称以允许Kerberos身份验证。

我们已将连接字符串配置为使用SQL身份验证(用户名和密码)。我们已经尝试设置trusted_connection = false,但是该连接仍然尝试使用Kerberos身份验证。

(已编辑的)连接字符串为:

  

“ server = ourfullyqualifiedserver.domain,1433; database = our-database; user = sql-user; password = sql-password;”

我希望能够使用SQL身份验证从容器连接到SQL Server,但是它仍在尝试使用Kerberos。为什么,以及如何使连接使用SQL Server身份验证?

2 个答案:

答案 0 :(得分:0)

您可能必须在连接字符串中添加"Trusted_Connection=false;"。 另外,将服务器IP与暴露给服务器的端口一起使用。

答案 1 :(得分:0)

事实证明,基本appsettings.json配置文件中的连接字符串没有被特定于环境的设置文件(appsettings.Development.json)覆盖。我们的DevOps小组为容器设置了环境变量,并使用SQL Server凭据正确连接了容器。