在不公开网络共享的情况下连接到数据库服务器

connect to a database server without exposing a network share

这在许多数据库中都非常简单,但我还没有找到通过网络在服务器模式下使用 Advantage 实现此目的的方法。

假设 2 台电脑:

如果包含此数据库的文件夹是通过 OS(网络共享,具有 read/write 权限)共享的,则建立连接是直接的。

但是,我正试图避免暴露网络共享。 例如,在 Firebird 中,这可以使用连接路径来完成: SYSDBA@SERVER:C:\SomePrivateFolder\myapp.FDB

这不就是暴露数据库端口(6262)的原因吗?

有趣的是,他们提供了一种叫做“互联网”的连接。我非常怀疑他们是否需要通过 Internet 进行网络共享才能访问数据库。

那么,这可行吗?如果可行,希望得到提示。

谢谢!

编辑:

根据以下答案,添加更多详细信息。

SERVER 包含 2 个文件夹,每个文件夹都有其 ADV 词典:

我可以使用连接路径 \\SERVER:6262\DataShared\mydata.add

连接到第二个

连接到我试过的第一个:

none 其中有效。

请注意,我不是直接调用存储过程,而是使用 Delphi ADS 组件,这些组件肯定会在内部调用相同的存储过程。 我当然是作为远程连接(在服务器上启动了 ADS 服务器)。对于其他参数,我使用 TCP/IP 作为通信。类型和默认 ADSSYS / 空白密码。

考虑到此设置,连接到 C:\Data\mydata.add on \\SERVER 的路径是什么?

再次感谢

无需在共享文件夹中公开您的数据库。只有在使用 LOCAL 连接时,您才会这样做。如果使用 INTERNET 或 REMOTE,则只需使用 API AdsConnect60() 进行连接。在帮助文件中查找它。

UNSIGNED32 AdsConnect60( UNSIGNED8 *pucConnectPath,
UNSIGNED16 usServerTypes,
UNSIGNED8 *pucUserName,
UNSIGNED8 *pucPassword,
UNSIGNED32 ulOptions,
ADSHANDLE *phConnect );

此外,您可以使用服务器端别名隐藏数据所在的路径。在帮助文件中查找它。很简单。

为了简化事情,请执行以下操作: 运行 广告服务器配置实用程序,转到“配置实用程序”选项卡,然后在其中转到“文件位置”选项卡。记下错误路径和断言日志路径。假设它是 c:。我们还假设服务器是 192.168.1.1.

现在在该路径 (c:) 中创建一个名为 AdsServer.ini 的文件,其中包含部分:[ServerAliases] 和一行 adsdata=c:\data。现在使用 API 函数 AdsConnect60,如下所示:AdsConnect60( "\\192.168.1.1\Adsdata\Mydata.add", ADS_REMOTE_SERVER, "adssys", "password", ADS_DEFAULT, &hConn);

如果您使用 Delphi 或其他某种语言,请确保检查已经为 API.

构建包装器的类

全部really-really有据可查:http://devzone.advantagedatabase.com/dz/WebHelp/Advantage11.1/index.html?ace_adsconnect60.htm