无法使用 Kerberos 从 RHEL Server 7.4 连接到 SQL Server

无法使用 Kerberos 从 RHEL Server 7.4 连接到 SQL Server

因此,我尝试从 RHEL Server 7.4 计算机连接到我们的一台 SQL 服务器,我已经安装了 kerberos、unixodbc 和 Microsoft ODBC for Linux。

我尝试连接的 SQL Server 位于 Active Directory 域内,我能够通过该域进行身份验证,kinit但仍然出现SSPI Provider: Server not found in Kerberos database.错误。

这是我从终端截取的片段:

[RH@localhost /]$ sudo kinit [email protected]
[sudo] password for RH: 
Password for [email protected]: 
[RH@localhost /]$ sqlcmd -E -S MyServer
Sqlcmd: Error: Microsoft ODBC Driver 13 for SQL Server : SSPI Provider: Server not found in Kerberos database.
Sqlcmd: Error: Microsoft ODBC Driver 13 for SQL Server : Cannot generate SSPI context.

这是我的/etc/krb5.conf

[libdefaults]
 dns_lookup_realm = false
 ticket_lifetime = 24h
 forwardable = yes
 default_realm = ADS.LOCAL.COM
 default_ccache_name = KEYRING:persistent:%{uid}
 dns_lookup_kdc = true

[domain_realm]
 .ads.local.com = ADS.LOCAL.COM

提前致谢!

答案1

你从中得到了什么

klist -k

是否以 root 身份执行?如果没有看到任何内容,则表示您的服务器未加入活动目录。否则,您会看到 kerberos 系统的主机条目。

通常,RHEL 7 系统配置 sssd 作为中央身份验证服务。请检查 sssd 是否已安装并正在运行:

systemctl status sssd

如果没有,你可以尝试再次加入

net ads join

否则,请配置你的 sssd 以加入你的活动目录域

realm join

您可以在这里获取更多相关信息:

https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/windows_integration_guide/SSSD-AD

问候,Björn

答案2

我遇到了同样的问题,但对于我来说,解决方案是尝试使用 SQL Server IP 而不是 FQDN。使用 FQDN 可以修复相同的错误消息(“SSPI 提供程序:在 Kerberos 数据库中未找到服务器”),或者在 ODBC DSN 中包含:“ServerSPN = MSSQLSvc/:”。

相关内容