我们在机器 A 上有一个 DSN,它指向机器 B 上的 DB。我们有一台机器 C,我们希望能够在机器 A 上使用该 DSN......但我们不想在机器 C 上创建 DSN。
有没有办法从机器 C 使用机器 A 上的系统 DSN?
答案1
系统 DSN 的定义是其所在计算机的本地 DSN。您需要在其他服务器上创建它。
如果可能的话,另一种选择是使用无 DSN 的连接字符串。
答案2
不,DSN 的目的是从一台机器连接到一个数据源。据我所知,不可能将 DSN 连接从一台机器“代理”到另一台机器。
答案3
是的,你可以...我知道在问了这个问题几年之后,这个答案不会困扰你,但我认为它可能会帮助其他人寻找这个问题。
您可以使用无 DSN 方法实现此目的
例如 :SQL 服务器 DSN 的连接字符串
oConn.Open "Driver={SQL Server};" & _
"Server=xxx.xxx.xxx.xxx;" & _
"Address=xxx.xxx.xxx.xxx,1433;" & _
"Network=DBMSSOCN;" & _
"Database=myDatabaseName;" & _
"Uid=myUsername;" & _
"Pwd=myPassword"
我已经亲自尝试过了,但是你需要有足够的访问权限
可以找到更多 DSN 连接字符串这里
答案4
是的,你可以,但它需要第三方解决方案,例如来自我的雇主。
这些解决方案通常需要在数据使用机器 (C) 上安装一些组件,并在具有 ODBC DSN (A) 的机器上安装一些组件。连接最终看起来像
ODBC consumer on C
-> ODBC Bridge DSN on C
-> ODBC Bridge components on A
-> ODBC DSN on A
-> target DBMS on B