风险非常大,数据库与应用不应该直接连接,并且暴露在公网,后果自负,比较合理的是应用程序发送请求到中间层,由中间层处理后再到数据库层,中间可以有些防火墙之类的。至于出差人员能直接远程访问数据库的需求不合理,如果真有这样的情况,建议使用证书、vpn、跳板机等方式加多一些中间环节,直链死翘翘。
安全性方面我这里有一份文档:http://download.csdn.net/detail/dba_huangzj/5395925如果非要这样做,那就要从客户端开始、网络层、服务器层、sqlserver层、数据库级别等等做好一系列的保障

解决方案 »

  1.   

    建议:
     1.修改SQL Service的默认端口,即非默认的1433.
     2.SQL Server SP补丁包应安装.
     3.检查sa帐号密码强度是否足够,必要时可禁用sa帐号.
     4.服务器windows防火墙需开启.
     5.服务器windows需经常更新(windows update).
     6.时常关注windows日志及SQL日志是否有异常信息.
      

  2.   

    你们公司的这个c/s系统,难道是直接从客户端连接的sql server嘛,没有经过应用服务器吗?
      

  3.   

    如果是没有应用服务器的,这样直接让客户端连接数据库,那个是相当不安全啊。我记得之前,有qq网友,让我看一个程序,就是个普通的程序,是个尝试连接所有公网上的ip的1433端口,然后用户名sa,各种简单的密码,去尝试,连接进去,然后取得系统的最高权限,然后就成了肉鸡了
    所以,如果真的是要暴露在公网上,至少:1、sql server不要使用默认的1433端口,改成其他不常用的端口。2、在防火墙上做设置,只允许必须的端口,哪些telnet、ftp等的端口都关闭3、服务器上,关掉所有不必要的服务,因为服务开的越多,就漏洞也越多。4、给服务器打上最新的补丁。5、如果可以的话,采用一些硬件的方式,比如:加密狗,插在客户端上,然后在登录时,除了要服务器地址,用户名和密码都对,加密狗的值,必须与服务器上存储的相同。6、在服务器级别,最好用数据库审计,来对数据库的操作进行记录,不过sql server的审计功能不够详细。
      

  4.   

    你是动态IP完全可以,没他们说的那么可怕,你只需要把用户名和密码弄得稍复杂些就行了,按他们的意思其实最终都会有个端口暴露在外面,难道暴露别的端口在外面又安全了?你的IP一天几变,攻击者才没那兴趣,就算你IP一直不变也不象他们所说的那样好象就能大摇大摆进去了
      

  5.   

    for security consideration, would not suggest put your database in public
      

  6.   

    除非你是一个SQL Server高手,非常高的高手,知道如何在公共网络保护你的数据库,否则就不要那么做,因为后果可能会很严重。
      

  7.   

    按照上面的说法,至少也得要通过vpn来连接,这个还有加密,还安全一点
      

  8.   


    多层的c/s,用户体验更好
    应用走https协议,安全性也没问题了
      

  9.   

    port 每月更改2次以上。sa密码一定要强大。OS 的服务该关的关。