我从不在论坛上提问题,因为我通常可以在互联网上找到答案。
但是,在这种情况下,我不能。
摘要:我可以通过Azure Data Studio和使用FreetDS的tsql使用kerberos身份验证连接和查询数据库。我无法连接到PyODBC。我尝试了几十种不同的配置都没有成功。
我的最终目标是用Python连接到MSSQL server DB。
谢谢你的任何投入。
背景
连接到kerberos身份验证所需VPN的本地计算机macOS 10.15.4已成功从Azure Data Studio数据库查询到数据库是Microsoft SQL Server 2016
弗里特兹
tsql-s-u'directory\username'->工作,可以查询DB
iSQL
isql dsn_name'directory\username''password'
错误DIAG[42000][FreeTDS][SQL Server]登录失败。该登录名来自不受信任的域,不能与Windows身份验证一起使用。
isql dsn_name'directory\username'
错误:DIAG[42000][FreeTDS][SQL Server]登录失败。该登录名来自不受信任的域,不能与Windows身份验证一起使用。
PyODBC
cnxn=pyodbc.connect('dsn=dsn_name;trusted_connection=yes')
错误:Pyodbc.ProgrammingError:(“42000”,“[42000][FreeTDS][SQL Server]登录失败.该登录来自不受信任得域,不能与Windows身份验证一起使用.(18452)(SQLDriverConnect)”)
cnxn=pyodbc.connect('dsn=dsn_name;uid=directory\username;pwd=“password”')
错误:DIAG[01000][FreeTDS][SQL Server]Adaptive Server连接Pyodbc失败。OperationalError:(“08001”,“[08001][FreeTDS][SQL Server]无法连接到数据源(0)(SQLDriverConnect)”)
配置
krb5.conf
libdefaults
default_realm=域
“境界”
domain_same_as_default={
kdc=kdc_address
}
ODBC.INI
[dsn_name]
描述=MSSQL服务器
驱动器=FreeTDS
Servername=server_name
ODBCInst.ini
[FreeTDS]
description=freetds用于Linux和MSSQL的驱动程序
driver=/usr/local/lib/libtdsodbc.so
setup=/usr/local/lib/libtdsodbc.so
USAGECOUNT=1
[ODBC]跟踪=是
tracefile=/dev/stdout
freetds.conf
[server_name]主机=ip_address
port=port_num
数据库=db_name
领域=域
我避免在pyodbc
中使用DSN,因为我更喜欢将所有配置放在一个位置。下面是我在域中使用的连接字符串示例。
con = pyodbc.connect(
r"DRIVER={FreeTDS};"
r'SERVER=mssql.mydomain.com;'
r"PORT=1433;"
r"DATABASE=my_db;"
f"UID=MYDOMAIN\\my_username;"
f"PWD=my_password;"
r"TDS_Version=7.3;"
r"Encrypt=yes;"
r"Trusted_Connection=yes;"
)
给它一个回旋?如果使用Windows域身份验证,则需要两个反斜杠(\\
)进行转义,这不是一个输入错误。您可能缺少的关键内容是tds_version
。有关TDS版本的更多信息,请访问:https://www.freetds.org/userguide/choosingtdsprotocol.html
祝你好运!
我正在运行一个squid代理服务器(CentOS 5),我正试图通过我们的AD服务器(Windows server 2008)使用kerberos。 我遵循了以下说明:http://wiki.squid-cache.org/ConfigExamples/Authenticate/Kerberos 为服务器设置一个keytab,这一切都运行良好。 当我尝试从客户端PC使用代理时,会出现问题,它会立即
我正在开发一个Web应用程序,它是rest客户端并使用rest服务(API)来执行任何操作。我集成了apache shiro以使用工作正常的jdbc领域执行身份验证。 现在,我正在寻找一种使用apacheDS LDAP执行身份验证的解决方案。我计划使用kerberos身份验证,但我没有找到任何有用的文章或示例来使用apache shiro实现kerberos身份验证。 我发现apache shir
使用这个例子,我的连接几乎可以工作 http://blogs.nologin.es/rickyepoderi/index.php?/archives/105-oracle-driver-and-kerberos.html 我使用的是Java7,但使用另一个没有问题。有没有一种方法可以用jvm正确读取票证(参见jdk中的kinit不要创建正确的票证)
15/02/06 15:17:12警告IPC.Client:连接到服务器时遇到异常:javax.security.sasl.saslexception:GSS initiate失败[由GSSException:未提供有效凭据(机制级别:找不到任何Kerberos tgt导致)]LS:本地异常失败:java.io.ioException:javax.security.sasl.saslexcepti
所有的, 有人能就如何使用JAAS LoginContext对多个KDC/Realm组合进行身份验证提供建议吗?换句话说,如果尝试1对领域A失败,请尝试领域B。 类似于下面的伪代码。 一如既往,任何帮助都非常感谢。 查看剪贴板打印文本?
我知道Fiddler支持Kerberos,所以我的想法是把打嗝链到Fiddler上。我首先确保我可以在Fiddler中使用篡改(使用此链接作为指南)。然后我将Fiddler设置为Burp的上游代理,但是当我在Burp中篡改一个请求时,在发出请求时仍然得到一个未经授权的401。 关于如何让Burp进行Kerberos身份验证,还有其他想法吗?