郁闷,我现在用C/S结构做给用户做了个软件系统;用户是租用网通的SQL数据库服务器,C/S结构的程序能通过公网直接访问SQL服务器吗?要是访问不了,我就废了。要是能,应该怎么访问?救命!

解决方案 »

  1.   

    至少有以下两种可能问题:1. 安全性。这个数据库实在是太容易被人利用了。很容易就知道你的应用程序访问数据库的登录名和密码(甚至只要用 Notepad.exe 打开应用程序进行字符串查找而不需要反汇编就可以找到),而且服务器端并不区分用户的“单点”登录,也就是说如果有人用泄露的用户名和密码访问数据库来偷偷修改数据,你就要为造成的用户业务损失赔钱——因为这是你的程序的设计漏洞造成的。谁让你把本没有安全性的小型办公室里使用的软件、服务器公开到互联网里让大家都来轻易连接上呢。2. 性能和稳定性。这要看你原来的软件是否是充分考虑到低速网络来设计的。如果你以为网络总是千兆网,那么当你放到上行速度只有十几k的互联网上时,原来一些最重要的资料传输功能本来可能需要5秒钟,而现在需要90秒钟,这样用户就会骂娘。至于你说的什么网通的数据库,我不知道是什么具体的产品。一般来说,如果一台服务器上有多个网站,网站提供的数据库是绝对不会向互联网开放的,因为一旦被攻击那么整个服务器上其它网站就垮了,网站提供商不应该为了单个人的需求而冒着很容易招致同一台服务器上所有人都骂自己的风险。
      

  2.   

    用vpn 的方式可以。 比较安全好用。
      

  3.   

    你的题目有误导。不是能不能访问远程服务器的问题,而是你说的那个服务器可能不可能让你去访问。如果你说你托管了一台服务器,并且你的应用程序在数据库中对每一个用户、每一个用户能够访问哪些表甚至结构、每一个用户可以发送哪一类的数据表操作等都有了设计(我见过的100个程序员有超过90个连SQL Server在10年前就有复杂的用户权限设置机制都不知道,从来没有用过),那么答案是“能”。这一切都看你的技术。但是如果你想偷懒,那么很可能你的软件的设计起点就不适合稍微大一点的用户的需求。
      

  4.   

    可以,但不好,建议通过下面两个方法来改造1)有条件的话,使用VPN
    2)使用Webservice
      

  5.   

    使用Web service吧,直接远程访问不太安全
      

  6.   

    加个Web service之类的,就变成所谓的三层c/s模式了
      

  7.   

    谢谢大家的帮助。这个系统比较小,也不存在什么重要的数据,是有关建筑行业施工日志的管理系统。只要网通SQL数据库允许访问就可以。
      

  8.   

    还有加个Web service,怎么弄啊?需要另外的费用吗?现在的客户都想你给他免费服务,哪啥得多花一分钱!
      

  9.   

    sp1234,这位大哥说的两种可能问题确实是存在的。我也担心网通的SQL服务器不允许直接访问,对于数据库用户名和密码应该是没有问题的,我这都是经过加密处理的。
      

  10.   

    完全可以,我就是这样作的,客户都用的好好的
    用VPN,或把连接字符串加密
      

  11.   

    OK,问题解决了,这种操作与局域网里操作SQL数据库没有多大区别,谢谢大家的帮助。结贴!