SqlClient/OLEDB 驱动程序的连接字符串,如 jdbc:jtds 驱动程序?
Posted
技术标签:
【中文标题】SqlClient/OLEDB 驱动程序的连接字符串,如 jdbc:jtds 驱动程序?【英文标题】:Connection string for SqlClient/OLEDB driver like jdbc:jtds driver? 【发布时间】:2022-01-13 21:46:46 【问题描述】:我正在 Ubuntu/Windows 上开发 .NET6 WebApi 项目,并且与 SQL Server DB 的连接配置为使用 Windows 身份验证。在 Windows 上,我可以使用此连接字符串 Data Source=DB-Name;Initial Catalog=Cat1;Integrated Security=SSPI
。在 Linux 上,我们已排除使用 Kerboros
进行身份验证,而是希望为 java 应用程序找到类似于 jdbc:jtds:sqlserver://DBName:Port;domain=ABC_XYZ;useNTLMv2=true
的连接字符串。这是否可以使用 SQL 客户端、ODBC、OLEDB 或任何其他支持的 .net6 客户端?使用 JDBC 连接字符串,我可以连接到 Jetbrains Rider 中所需的数据库。
【问题讨论】:
【参考方案1】:.Net SqlClient 不支持提供凭据的 NTLM,存在跟踪问题here。仅限 Kerberos、SQL 身份验证和(对于 Azure SQL)AAD 身份验证。
JDBC 是唯一支持 Linux 上 NTLM 的 Microsoft 驱动程序。
【讨论】:
我更新了问题。这是否可以使用任何其他支持 .net6 的客户端,如 Oledb、ODBC ? jTDS 驱动程序不是 Microsoft 驱动程序。 Microsoft JDBC Driver for SQL Server 以同样的方式支持 NTLM。以上是关于SqlClient/OLEDB 驱动程序的连接字符串,如 jdbc:jtds 驱动程序?的主要内容,如果未能解决你的问题,请参考以下文章