无法将 ODBC 数据源添加到 SQL Server

Posted

技术标签:

【中文标题】无法将 ODBC 数据源添加到 SQL Server【英文标题】:Fail to add ODBC Data Source to a SQL Server 【发布时间】:2021-11-29 19:58:23 【问题描述】:

我使用可以通过 altium 或 dbVisulizer 连接的在线数据库。我想在 Windows 中使用 ODBC 数据源向该数据库添加一个实例,但它失败了。我遵循的步骤如下图所示:

知道为什么会这样吗?

附加信息:

    Altium 使用以下信息:ConnectionString = Provider=SQLNCLI11.1; User ID=alib_WFC5AKIMTQCL; Password="*********"; Initial Catalog=altium_library; Data Source=db.altiumlibrary.com,1433; Initial File Name=""; Server SPN="" 通过 dbVisulizer 连接后,我得到以下信息:The server version is: Microsoft SQL Server 14.00.2027 Microsoft JDBC Driver 9.2 for SQL Server 9.2.1.0

【问题讨论】:

你关注了这样的事情:cdata.com/kb/tech/access-jdbc-dbv.rst ?你被困在哪里了?您需要什么帮助? 我想从 MS Access 访问 JDBC 数据库。我想在ODBC数据源中添加数据库,但似乎我需要一个驱动程序 【参考方案1】:

我不相信这是可能的。但是,在大多数情况下,如果您可以通过 jdbc 驱动连接到 sql server,那么您可以使用 odbc 连接到同一个 sql server。

Access 不支持 jdbc,并且在大多数情况下驱动程序是 Java,因此您会谈论启用 Java 的客户端软件。

例如,我有一个 SQL 服务器实例。我通过网络从 Access 直接连接到 SQL 服务器 - 使用 ODBC 驱动程序。

但是,我的安卓手机呢?嗯,我用的是jdbc type 4驱动,所以我的安卓手机也可以直接连接到网络上同一个sql server实例。

但是,不支持 Access 使用 jdbc 驱动程序连接到 SQL Server,但是如果那是有问题的 SQL Server,那么 jdbc 和 odbc 都应该能够连接到正在运行的 SQL Server 实例.

现在,您可能能够设置和运行所谓的 jdbc“桥”连接。这将要求您在计算机上安装 + 设置网桥。 (而且那个桥就像一个迷你网络服务器一样运行——它不仅仅是一个驱动程序,而是一个你必须运行的像“服务”/“服务器”这样的网络。事实上,它与这样一个桥的用途完全相反. 因此,例如,如果您运行该网桥,则 jdbc 驱动程序实际上可能连接到访问数据库(这将是类型 2(或 3???)jdbc 驱动程序/连接。

因此,需要明确的是,无法访问 jdbc 类型 4 连接,因为它们需要所谓的“套接字”(tc/ip)连接。 Access 是基于文件的,因此您无需连接到 access 数据库,而是将其作为文件打开。但是,如前所述,无论如何,您都在谈论 Access 连接到服务器。

但是,Access 不支持、也不使用、也没有任何方式使用和消费 jdbc 驱动程序。但话又说回来,任何来自 mysql、Oracle、PostgrSQL、SQL server 等的数据库都有 ODBC 驱动程序。

那么问题来了,为什么这里不使用 ODBC 驱动程序?

但是,如上所述,由于 Access 支持 ODBC 驱动程序,而不是 jdbc 驱动程序,因此答案是否定的 - Access 不能使用此类驱动程序。

【讨论】:

我现在看清楚了。我的问题应该是为什么不能使用 ODBC 连接到 SQL Server?我会想出一个编辑 是的,你应该能够连接到 sql server。问题/问题是 SQL 服务器驻留在哪里?在公司网络,在云端?在哪里?如果 sql server 在您的公司网络上,那么您可以并且应该能够连接内部。如果您在家中或在路上,则需要设置 ***,并且您可以而且应该能够连接。 你现在能看到我的问题吗? 您不能只将您的连接指向亚马逊网站,并期望疯狂而疯狂的互联网绕过该网站并连接到他们的数据库,对吗?除非该 SQL 服务器允许该网站上的外部连接,否则作为一般规则,您不能直接连接到数据库,除非它们打开并允许直接连接到该网站。在大多数情况下,该网站是 100% 免费的,带有连接到给定数据库的代码。允许与数据库的外部连接往往会被锁定。因此,这取决于您拥有和允许的服务器设置和连接 因此您要么需要 ***,要么必须与网络提供商合作以查看他们是否允许外部连接到数据库(大多数不允许,因为它存在巨大的安全风险)。如果 Web 服务器在您自己的网络上 - 那么没问题。所以这归结为网络服务器设置,以及它们允许什么样的连接,或者如果这是你自己运行的网络服务器,你可以允许和设置。我认为允许任何具有 Access 权限的人简单地连接到该 Web 数据库将是一个巨大的安全漏洞,其大小相当于一扇敞开的谷仓门,对吧?

以上是关于无法将 ODBC 数据源添加到 SQL Server的主要内容,如果未能解决你的问题,请参考以下文章

关于个人版SQL2000无法和ODBC连接的问题

使用 ODBC 包将数据从 SQL Server 保存或读取到 R

[Microsoft][ODBC SQL Server Driver][SQL Server]无法将 NULL 值插入列 'msrepl_tran_version,该列不允许

将 Odbc 引用添加到我的应用程序

ODBC无法连接SQL SERVER

如何将mysql 数据库导入到sql server 2008 数据库