sql-server - ODBC 驱动程序无法在 SQL Server 身份验证模式下读取用户数据

标签 sql-server odbc unixodbc

从 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/

相关文章:

sails.js - 在 Sails 应用程序中运行 npm install odbc 会产生错误吗?

sql-server - Azure 数据工厂 - 从 Blob 批量导入到 Azure SQL

SQL如何连接具有不同列和连接的两个查询

SQL - 两列不同,第三列汇总值

postgresql - ODBC/JDBC 代理到 Postgresql

c++ - MFC/Sql 相同情况下的不同异常

c# - 从 MySQL 到 MS Access 的 1GB 数据

php - 无法连接到数据源

sql-server - 使用 Ruby、ODBC 和 FreeTDS 从 Mac 连接到 MS SQL Server 2005

SQL 连接不同值