从ORACLE数据库到MS SQL Server进行ODBC连接时出现问题。
我已经实现了与sqlcmd的连接。所以服务器看到彼此并且可以进行通信。 ODBC驱动程序在身份验证时失败,因为它无法从odbc.ini文件中读取用户和密码数据。 我读到这是因为odbc驱动程序不接受验证数据,如果它以纯文本格式存储,但没有解释我如何以其他方式存储数据。
环境:
这有效:
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 ''.
答案 0 :(得分:1)
除了使用从ini读取uid / pwd的ODBC驱动程序之外,您可以做的就是让应用程序传递详细信息。你没有提到什么应用程序调用驱动程序?
答案 1 :(得分:1)
ODBC配置可以指定您是使用SQL身份验证还是集成。但是你不能用它来存储用户和密码。在Windows中也是如此。不太确定unser linux,但ODBC是ODBC。
我不知道您正在使用的应用程序或技术,但是:您需要使用用户和密码填充相应的连接字符串。
仅提供连接字符串的建议:http://www.connectionstrings.com/