SSPI 提供程序:在 Kerberos 数据库中找不到服务器
Posted
技术标签:
【中文标题】SSPI 提供程序:在 Kerberos 数据库中找不到服务器【英文标题】:SSPI Provider: Server not found in Kerberos database 【发布时间】:2022-01-20 13:01:32 【问题描述】:我正在尝试从 Ubuntu 20.04 客户端连接到位于 windows server 2012R2 上的 MS SQL Server 2014。
领域连接和 Kinit 都很好。
# sudo realm discover org.internal --install=/
org.internal
type: kerberos
realm-name: ORG.INTERNAL
domain-name: org.internal
configured: kerberos-member
server-software: active-directory
client-software: sssd
required-package: sssd-tools
required-package: sssd
required-package: libnss-sss
required-package: libpam-sss
required-package: adcli
required-package: samba-common-bin
login-formats: %U@org.internal
login-policy: allow-realm-logins
# kinit -V user@ORG.INTERNAL
Using default cache: /tmp/krb5cc_0
Using principal: user@ORG.INTERNAL
Password for user@ORG.INTERNAL:
Authenticated to Kerberos v5
# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: user@ORG.INTERNAL
Valid starting Expires Service principal
12/17/21 10:49:31 12/17/21 20:49:31 krbtgt/ORG.INTERNAL@ORG.INTERNAL
renew until 12/24/21 10:49:24
12/17/21 10:51:21 12/17/21 20:49:31 MSSQLSvc/ws2012r2:1433@ORG.INTERNAL
renew until 12/24/21 10:49:24
12/17/21 10:51:57 12/17/21 20:49:31 user@ORG.INTERNAL
renew until 12/24/21 10:49:24
12/17/21 10:52:30 12/17/21 20:49:31 MSSQLSvc/ws2012r2.org.internal:1433@ORG.INTERNAL
renew until 12/24/21 10:49:24
当我执行 sqlcmd 时,出现以下错误。请注意,如果我指定用户名和密码(sql 身份验证),它将起作用。
# sqlcmd -S 20.12.34.567
Sqlcmd: Error: Microsoft ODBC Driver 17 for SQL Server : SSPI Provider: Server not found in Kerberos database.
Sqlcmd: Error: Microsoft ODBC Driver 17 for SQL Server : Cannot generate SSPI context.
SPN is below
setspn -L user
Registered ServicePrincipalNames for CN=User ABC,CN=Users,DC=org,DC=internal:
MSSQLSvc/ws2012r2:1433
非常感谢任何帮助!
这里有一个问题,我确实生成了一个 keytab 文件。但是,告诉 Windows Server 2012r2 上的 SQL Server 2014 使用 keytab 文件的命令是什么?
【问题讨论】:
可能是 DNS 问题。如果在客户端计算机上,您正向查找服务器的名称并反向查找服务器的 IP 地址,它们会产生镜像结果吗? 可能是时钟同步问题。服务器、KDC 和客户端都 NTP 同步了吗? 【参考方案1】:通过 IP 访问服务器将不允许基于 DNS 名称的 SPN 工作。带有 IP 地址的 SPN 未注册。使用服务器的域名。
【讨论】:
非常感谢! sqlcmd -S ws2012r2 有效!我没有意识到我需要使用域名以上是关于SSPI 提供程序:在 Kerberos 数据库中找不到服务器的主要内容,如果未能解决你的问题,请参考以下文章