因此,我尝试从 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
您可以在这里获取更多相关信息:
问候,Björn
答案2
我遇到了同样的问题,但对于我来说,解决方案是尝试使用 SQL Server IP 而不是 FQDN。使用 FQDN 可以修复相同的错误消息(“SSPI 提供程序:在 Kerberos 数据库中未找到服务器”),或者在 ODBC DSN 中包含:“ServerSPN = MSSQLSvc/:”。