SQL 服务器 ODBC 连接 Kerberos/AD 身份验证

SQL Server ODBC connection with Kerberos/AD Authentication

我有 SQL 服务器在我公司的网络上使用 Kerberos 身份验证。我正在尝试设置一个 Linux 系统,以便能够使用 pyodbc 访问该 SQL 服务器。我是 Kerberos 的新手,但已经能够让我的 Linux (Ubuntu 16.04) 盒子与 Kerberos 一起工作......至少这就是我的想法。我可以 kinit <username> 并且它可以识别我的用户名和密码。

接下来我该做什么?

如果我这样做:

sqlcmd -S MyDatabase.corp.com

我明白了:

sqlcmd: Error: Microsoft ODBC Driver 11 for SQL Server : Cannot generate SSPI context.
Sqlcmd: Error: Microsoft ODBC Driver 11 for SQL Server : SSPI Provider: Cannot find KDC for realm "COMPANYNET.CORP.COM".

我很确定我只是没有做下一步,但我还没有找到一个好的来源来告诉我下一步该做什么。非常感谢任何帮助......谢谢!

在我公司的很多人都非常头疼和恼火之后,我终于让它工作了。

  1. 必须在域上设置服务帐户
  2. 必须获得 AD 管理员制作的 krb5.keytab 文件
  3. 必须在我的 /etc/krb5.conf 文件中使用正确的域设置 Kerberos
  4. 必须为目标 SQL 服务器设置 SPN(这似乎是上述错误消息的实际原因)
  5. 确保在 SQL 服务器上设置适当的权限设置服务帐户。

设置好后我可以做:

kinit -k <SERVICE ACCOUNT NAME>
sqlcmd -E -S MyDatabase.corp.com