从 ORACLE 数据库到 MS SQL Server 建立 ODBC 连接时遇到问题。
我已经实现了与sqlcmd的连接。因此服务器可以看到彼此并可以进行通信。 ODBC 驱动程序在身份验证时失败,因为它无法从 odbc.ini 文件中读取用户和密码数据。 我读到发生这种情况是因为 odbc 驱动程序不接受以纯文本形式存储的身份验证数据,但没有说明如何以其他方式存储数据。
环境:
- ODBC 驱动程序:适用于 SQL Server 的 Microsoft ODBC 驱动程序 11
- 驱动程序管理器:Unix ODBC 2.3.0
- 操作系统:ORACLE Linux 6.5
- 目标数据库:MS SQL Server 2008 R2
这有效:
sqlcmd -S address -U username -P password
odbc.ini 文件:
[SQL_LINK]
Driver = ODBC Driver 11 for SQL Server
Server = tcp:address,port
UID = username
PWD = password
日志文件:
[ODBC][913][1417453346.612341][SQLConnect.c][3654]
Entry:
Connection = 0x18f40a0
Server Name = [SQL_LINK][length = 8 (SQL_NTS)]
User Name = [NULL]
Authentication = [NULL]
UNICODE Using encoding ASCII 'UTF8' and UNICODE 'UTF16LE'
DIAG [28000] [Microsoft][ODBC Driver 11 for SQL Server][SQL Server]Login failed for user ''.
最佳答案
除了使用从 ini 读取 uid/pwd 的 ODBC 驱动程序之外,您所能做的就是让应用程序传递详细信息。您没有提到哪个应用程序正在调用驱动程序?
关于sql-server - ODBC 驱动程序无法在 SQL Server 身份验证模式下读取用户数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27252908/