使用非标准 TCP 端口时的 Firebird 连接 ODBC 远程

Firebird connection ODBC remote when using non-standard TCP port

我有一台装有 Firebird 2.5.3 的服务器,我需要通过 ODBC 连接读取另一台服务器上的数据库,以便在 SSIS 项目(集成服务)中使用,所以我与 .FDB 数据库共享文件夹并设置地址在我的 ODBC 连接中,但不起作用。

我的文件firebird.conf:

# ----------------------------
# TCP Protocol Settings
#
# The TCP Service name/Port number to be used for client database
# connections.
#
# It is only necessary to change one of the entries, not both.  The
# order of precendence is the 'RemoteServiceName' (if an entry is
# found in the 'services.' file) then the 'RemoteServicePort'.
#
# Type: string, integer
#
RemoteServiceName = fb_db
RemoteServicePort = 5050

我尝试: 没有端口: 192.168.100.21:C:\IntegracaoRH\CONSISANET2_5.FDB 和 和 : 192.168.100.21:5050:C:\IntegracaoRH\CONSISANET2_5.FDB 和同样的错误。

如何建立远程ODBC连接?

根据您发布的配置,您的 Firebird 实例 运行 在端口 5050 上,但是当您未在连接字符串中指定端口时,Firebird 客户端将默认使用端口 3050。

要使用正确的端口,您需要使用 <host>/<port>:<db-path-or-alias>.

格式在连接字符串中明确指定端口

换句话说,类似于:

192.168.100.21/5050:database-alias

其中 database-alias 应该是数据库的别名或路径。

请注意,Windows 上的 Firebird 支持使用 WNET 协议的 \<host>\<db-path-or-alias> 形式的 URL。但是我的猜测是您导航到了 UNC 路径 \192.168.100.21\IntegracaoRH\CONSISANET2_5.FDB。 UNC 路径和 Firebird WNET-url 之间没有一对一的对应关系:它们看起来相同,但它们不是同一回事。 ODBC 配置中的 'Browse' 按钮应该只用于 select 您机器本地的数据库。

顺便说一句,能够浏览到 UNC 路径 \192.168.100.21\IntegracaoRH\CONSISANET2_5.FDB 表明您的数据库位于与网络共享的文件夹中。您不应该通过文件共享在网络上共享数据库。这是不安全的,因为任何有权访问的人都可以创建数据库的副本并以完全权限访问它,甚至替换或以其他方式损坏数据库。应始终通过与数据库文件位于同一主机上的 Firebird 服务器来访问数据库。