配置 MSSQL 客户端和 Kerberos 身份验证时出现问题

配置 MSSQL 客户端和 Kerberos 身份验证时出现问题

我在配置 Ubuntu 18.04 时遇到问题。客户端使用 Windows 身份验证连接到 MSSQL Server。首先,使用 PAM 和 Winbind 的 Kerberos/AD 登录可以正常工作,使用 SQL 身份验证的连接也可以通过 sqlcmd 和 php sqlsrv_connect 正常工作。

但是当我使用sqlcmd -E -S vm-server\\prod -d Database它时会停止并产生以下结果:

Sqlcmd: Error: Microsoft ODBC Driver 17 for SQL Server : SSPI Provider: Server not found in Kerberos database.

我已将 DSN 配置添加到我的 /etc/odbc.ini 文件中,如下所示:

[MSSQL]
Driver = ODBC Driver 17 for SQL Server
Server = vm-server\prod
ServerSPN = MSSQLSvc/vm-client
ServerSPN = MSSQLSvc/[email protected] (as an alternative, with uppercase domain)
User =
Password =

然后再次使用 启动 sqlcmd sqlcmd -D -E -S MSSQL -d Database。现在我收到另一个错误:

Sqlcmd: Error: Microsoft ODBC Driver 17 for SQL Server : SSPI Provider: Message stream modified.

最后一次尝试,使用域名:

[MSSQL]
Driver = ODBC Driver 17 for SQL Server
Server = vm-server\prod
ServerSPN = MSSQLSvc/[email protected] (Lowercase!)
User =
Password =
Sqlcmd: Error: Microsoft ODBC Driver 17 for SQL Server : SSPI Provider: KDC reply did not match expectations.

有什么办法可以解决这个问题吗?到处都有文档记录说要使用大写域名,但这两种类型都不起作用。

如上所述,使用 winbind 的 AD Auth 效果很好。Apache2 Mod auth kerb 也运行良好。

提前谢谢!

此致

相关内容