当前位置:编程学习 > VB >>

如何访问异地服务器的数据库

我公司有一外网固定IP地址为218.31.13.09,
公司局域网内有一台固定IP地址为192.1.7.200的计算机,其安装有SQL SERVER2000。
现在192.1.7.200已绑定到外网IP地址218.31.13.09上.

在VB中如何设置ADODC控件的ConnectionString属性,才能访问到数据库?
我尝试使用如下语句,但连接失败。
ADODC.ConnectionString="Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=ProdRoom;Data Source=218.31.13.09\192.1.7.200"

如何改进才能连接,请大虾们赐教. --------------------编程问答-------------------- Data Source=主机名/SQL实例名

配置防火墙,映射1433端口 --------------------编程问答--------------------
引用 1 楼 caozhy 的回复:
Data Source=主机名/SQL实例名

配置防火墙,映射1433端口


是新手,并且对网络设置不熟悉,大虾能否详细说说各种设置的方法:),感谢 --------------------编程问答-------------------- 要在路由器中设置,
进入路由器管理界,有一个“转发规则” 不同牌子的路由器显示的文字可能不一样。
在里面把 1433 和 192.1.7.200 绑定,这样做有风险,全世界都可以访问你的数据库,
如果数据的密码被猜出来或破解了,那就一点安全性都没了,如果你不在乎那就无所谓了。
--------------------编程问答--------------------
引用 3 楼 ldy888 的回复:
要在路由器中设置,
进入路由器管理界,有一个“转发规则” 不同牌子的路由器显示的文字可能不一样。
在里面把 1433 和 192.1.7.200 绑定,这样做有风险,全世界都可以访问你的数据库,
如果数据的密码被猜出来或破解了,那就一点安全性都没了,如果你不在乎那就无所谓了。


有防火墙,数据库有密码,这些也是一种较普通的预防措施了,对于网络安全现在考虑的也不是很多,反正现在这个服务器就是单独给一个程序使用的。
大虾有什么好的预防方法或措施? --------------------编程问答-------------------- ADODC.ConnectionString="Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=ProdRoom;Data Source=218.31.13.09" --------------------编程问答--------------------
引用 4 楼 kimpkswm 的回复:
引用 3 楼 ldy888 的回复:
要在路由器中设置,
进入路由器管理界,有一个“转发规则” 不同牌子的路由器显示的文字可能不一样。
在里面把 1433 和 192.1.7.200 绑定,这样做有风险,全世界都可以访问你的数据库,
如果数据的密码被猜出来或破解了,那就一点安全性都没了,如果你不在乎那就无所谓了。


有防火墙,数据库有密码,这些也是一种较普通的预防措施了,对于网络安……

培植防火墙规则。只允许特定的IP连接。 --------------------编程问答--------------------
引用 6 楼 caozhy 的回复:
培植防火墙规则。只允许特定的IP连接。

这个估计有难度了,用户如果不是专线,没有固定IP,那就麻烦了。 --------------------编程问答--------------------
引用 4 楼 kimpkswm 的回复:
引用 3 楼 ldy888 的回复:
要在路由器中设置,
进入路由器管理界,有一个“转发规则” 不同牌子的路由器显示的文字可能不一样。
在里面把 1433 和 192.1.7.200 绑定,这样做有风险,全世界都可以访问你的数据库,
如果数据的密码被猜出来或破解了,那就一点安全性都没了,如果你不在乎那就无所谓了。


有防火墙,数据库有密码,这些也是一种较普通的预防措施了,对于网络安……

如果不是什么高度机密的资料,就这样用吧,被别人恶意破坏的几率还是很低的,很多人都这样用的。

想安全一点,不要开放1433端口,要自己写个服务端,客户端发来请求通过服务端读写数据库。
这个写起来就不是一两句话说的明白的了。

--------------------编程问答-------------------- UP。。。。。。。。。 --------------------编程问答-------------------- Friendly Up! --------------------编程问答--------------------
引用 5 楼 leftie 的回复:
ADODC.ConnectionString="Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=ProdRoom;Data Source=218.31.13.09"

按照上面的方式,然后设置防火墙规则,只允许特定的IP:218.31.13.09连接。

我现在就用的这种方式

既然你的内网机器已经绑定外网地址,通过外网地址可以直接访问的了,如果不行应该是你的链接设置或服务器本身有问题,比如sql2000没装sp4补丁时,无法通过ip访问服务器的。

--------------------编程问答--------------------
引用 11 楼 hjker007 的回复:
引用 5 楼 leftie 的回复:
ADODC.ConnectionString="Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=ProdRoom;Data Source=218.31.13.09"

按照上面的方式,然后设置防火墙规则,只允许特定的IP:218.31.13.09连接。
……


这样应该是不行吧。我们公司的一个外网IP地址IP:218.31.13.09是绑定了几台内网机器的IP地址的,在连接字符串中指定外网IP后,应该还得指定什么才能访问到指定机器的数据库吧? --------------------编程问答--------------------
引用 11 楼 hjker007 的回复:
引用 5 楼 leftie 的回复:
ADODC.ConnectionString="Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=ProdRoom;Data Source=218.31.13.09"

按照上面的方式,然后设置防火墙规则,只允许特定的IP:218.31.13.09连接。
……


各位大虾,就用VB创建的标准工程,可以实现对远程数据库的访问的吧?
如果能这样,速度会不会很慢?(与用C++做后台处理,ASP做前端的比较) --------------------编程问答-------------------- 各位大虾,就用VB创建的标准工程,可以实现对远程数据库的访问的吧?
可以。

如果能这样,速度会不会很慢?(与用C++做后台处理,ASP做前端的比较)
取决与你的网络速度和质量。

C++ 与VB无法比较,因为C++本身就比VB快。 --------------------编程问答--------------------
引用 14 楼 acmain_chm 的回复:
各位大虾,就用VB创建的标准工程,可以实现对远程数据库的访问的吧?
可以。

如果能这样,速度会不会很慢?(与用C++做后台处理,ASP做前端的比较)
取决与你的网络速度和质量。

C++ 与VB无法比较,因为C++本身就比VB快。


acmain_chm大虾,请看第一贴,然后给点耐心往下看,看看怎么解决这个贴子中的远程访问问题:)
感谢!
--------------------编程问答-------------------- 1 。  能不能PING通
2 。 TELNET xxx.xxx.xx.xx 1433 是否通?

以上两步先判断网络层是否正常。 --------------------编程问答--------------------
引用 16 楼 acmain_chm 的回复:
1 。 能不能PING通
2 。 TELNET xxx.xxx.xx.xx 1433 是否通?

以上两步先判断网络层是否正常。


好似发现问题了。
现在PING xxx.xxx.xx.xx通了,
但TELNET xxx.xxx.xx.xx 14333时,显示如下错误:
正在连接到xxx.xxx.xx.xx...不能打开到主机的连接,在端口1433:连接失败
但不知道何解?有似是端口设置的问题 --------------------编程问答-------------------- Windows 2003/2008搭配SQL Server 2000必须安装SQL Server 2000 SP4 --------------------编程问答-------------------- 路由器中 1433 端口和 192.1.7.200 绑定了吗?
主机防火墙中有没有 开放 1433端口的访问权?
装了 SP4补丁了吗?
如果都做了,那就没理由访问不了。
--------------------编程问答--------------------
引用 19 楼 ldy888 的回复:
路由器中 1433 端口和 192.1.7.200 绑定了吗?
主机防火墙中有没有 开放 1433端口的访问权?
装了 SP4补丁了吗?
如果都做了,那就没理由访问不了。


假定外网固定IP地址为:218.31.13.09
局域网内有两台机局域网IP地址为:192.1.7.200、192.1.7.205,这两台机都安装了SQL SERVER2000。
路由器中 1433 端口和 192.1.7.200 、192.1.7.205绑定了,
那在连接字符串中用“......,Data Source=218.31.13.09”,没有指定连接到192.1.7.200或是192.1.7.205 吧? --------------------编程问答-------------------- 只能绑定一个。 --------------------编程问答--------------------
引用 21 楼 ldy888 的回复:
只能绑定一个。


那在连接字符串中是不是要用“......,Data Source=218.31.13.09,1433(端口号)”?

另外,用VB标准工作创建的程序,只能通过1433端口来访问数据库吗?
--------------------编程问答-------------------- 默认的1433可以不写,修改过之后,要写Data Source=218.31.13.09,1466 或者
Data Source=218.31.13.09;port=1466
路由器中 1433和 192.1.7.200绑定  1466和 192.1.7.205绑定,你就都可以访问了 --------------------编程问答-------------------- 更正一下 Data Source=218.31.13.09;port=1466 这个表达是错的

就用 Data Source=218.31.13.09,1466  --------------------编程问答--------------------
引用 23 楼 ldy888 的回复:
默认的1433可以不写,修改过之后,要写Data Source=218.31.13.09,1466 或者
Data Source=218.31.13.09;port=1466
路由器中 1433和 192.1.7.200绑定 1466和 192.1.7.205绑定,你就都可以访问了


ldy888大虾有没有邮箱,我对网络设置不太会,我发我们的路由设置你看看,这么设置了如何做才能访问到远程数据库。谢谢 --------------------编程问答-------------------- szxldy@gmail.com --------------------编程问答-------------------- 留名备用 --------------------编程问答-------------------- 顶一下,问题还没有解决,希望大虾能看到提示一些方法得以解决。
补充:VB ,  基础类
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,