Sql server 在Kerberos原则中包含正斜杠

Sql server 在Kerberos原则中包含正斜杠,sql-server,macos,odbc,kerberos,freetds,Sql Server,Macos,Odbc,Kerberos,Freetds,我试图在Mac上使用pyodbc和Kerberos连接到MSSQL数据库。这完全可能不是我的问题,但我怀疑我需要在用户名中包含正斜杠。这就是为什么我认为这 我能够使用以下命令成功连接并执行tsql中的查询 $tsql-S servername.domain.com-U domain\\user-p password 如果没有域单斜杠用户位,这将不起作用。我正在尝试使用以下命令获取Kerberos TGT $ ktutil -k /path/to/krb5.keytab add -p domain

我试图在Mac上使用pyodbc和Kerberos连接到MSSQL数据库。这完全可能不是我的问题,但我怀疑我需要在用户名中包含正斜杠。这就是为什么我认为这

我能够使用以下命令成功连接并执行
tsql
中的查询

$tsql-S servername.domain.com-U domain\\user-p password

如果没有域单斜杠用户位,这将不起作用。我正在尝试使用以下命令获取Kerberos TGT

$ ktutil -k /path/to/krb5.keytab add -p domain\\user@domain.com -e aes256-cts-hmac-sha1-96 -V 1
当我尝试列出keytab文件时,我得到了这个

Vno  Type                     Principal                                 Aliases
  1  aes256-cts-hmac-sha1-96  domainuser@domain.com
注意没有斜杠,我在域和用户之间用1个斜杠试过了,得到了同样的结果。有趣的是,尝试在域和用户之间使用3个正向斜杠,会在keytab中提出3个正向斜杠

使用提供的示例运行kinit时出现的错误如下

$ kinit --keytab=/path/to/krb5.keytab --use-keytab domain\\user@domain.com

kinit: krb5_get_init_creds: Client (domainuser@domain.com) unknown

下面的所有内容对于问题来说都不是必需的,但是可能有用的信息 其他一些潜在的有用信息

如果我尝试省略域正斜杠位的整个过程

$ ktutil -k /path/to/krb5.keytab add -p user@domain.com -e aes256-cts-hmac-sha1-96 -V 1
$ kinit --keytab=/path/to/krb5.keytab --use-keytab user@domain.com

kinit: Password incorrect
如果我更改加密类型,我实际上可以得到一个票证,但它在odbc中不起作用

$ ktutil -k /path/to/krb5.keytab add -p user@domain.com -e arcfour-hmac-md5 -V 1
$ kinit --keytab=/path/to/krb5.keytab --use-keytab user@domain.com
Encryption type arcfour-hmac-md5(23) used for authentication is weak and will be deprecated
$ klist
Credentials cache: API:3134B08E-00BD-4F65-8214-F317C238000A
        Principal: user@domain.com

  Issued                Expires               Principal
Feb 10 22:16:44 2017  Feb 11 08:16:44 2017  krbtgt/domain.com@domain.com

我能够在Linux机器上很容易地实现这一点,而无需进行前向删减,但在Mac部分,我的头已经撞到墙上好几天了。如有任何线索,我们将不胜感激。

domain\user@domain.com
是非法的Kerberos主体,Heimdal或MIT Kerberos永远不会接受这一点。Microsoft不为macOS提供任何ODBC驱动程序。你在用什么?免费的?显示
tsql-C
的输出。很可能您在编译时没有Kerberos支持。是的,FreeTDS。以下是
tsql-C
中的一些相关设置<代码>版本:freetds v1.00.26<代码>TDS版本:7.3<代码>unixodbc:是<代码>Kerberos:否<代码>OpenSSL:是;看看输出。中没有编译的Kerberos支持。针对绑定的Heimdal或单独的MIT Kerberos重新编译。