在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身份验证?
答案 0 :(得分:0)
您可能必须在连接字符串中添加"Trusted_Connection=false;"
。
另外,将服务器IP与暴露给服务器的端口一起使用。
答案 1 :(得分:0)
事实证明,基本appsettings.json配置文件中的连接字符串没有被特定于环境的设置文件(appsettings.Development.json)覆盖。我们的DevOps小组为容器设置了环境变量,并使用SQL Server凭据正确连接了容器。