写了一程序,远程用户需要通过internet连接公司的SQL服务器.我目前检查所有连接情况是   1,服务器有固定IP,开放了1433端口且无防火墙(故意绕开的)   2,远程用户能ping通公司服务器的IP, 用telnet xxx.xxx.xxx.xxx 1433测试端口成功.  
   
   3,SQL服务器的服务端和客户端设置都使用的是TCP/IP协议和1433端口    4,连接字串使用的是固定IP不是服务器名称, 用户和密码绝对没有问题.   5.服务器用WIN2000+SQL2000, SQL的版本是8.00.760 (Intel X86)(SP3)远程用户能用FTP://xxx.xxx.xxx.xxx成功访问这台服务器, 可是这样都没办连接服务器.请教高人指点,真是急死啦   

解决方案 »

  1.   

    系统自身的防火墙呢? 设置混合验证登陆了么?都有的话,可以这么试试
    我以前遇到过类似的情况,怎么着就是连不上,最后安装了个防火墙,然后添加上一条规则,显示打开1433,445,139端口,然后就可以了看你的步骤,SQLServer连接验证的时候不单单是1433端口的,还有445和139
    你可以安装个天网防火墙,然后连接,就可以看到提示有人在攻击这几个端口了
      

  2.   

    "用telnet xxx.xxx.xxx.xxx 1433测试端口成功"证明端口是开放的, 并且确实在侦听
    "SQL服务器的服务端和客户端设置都使用的是TCP/IP协议和1433端口"说明协议没有错但还是不能登录, 那么你应该给出错误提示
    端口在侦听, 那你还要检查端口是否是数据库中用, 你把数据库服务停止, 如果端口还是在侦听, 那么说明是其他软件使用了1433端口, 你应该修改端口号做测试。
      

  3.   

    多谢lovcal(枫兮),zjcxc(邹建)二位的指点, 先试试
      

  4.   

    还是连接不成功呀, "提示用户端无法建立连接"用户端是win2000呀, 装了一个Norton10.0, 用户是通过无线连接D-link宽频路由器上网的.我已经改变了服务器的1433改为1933端口, 用telnet连接成功.求救呀
      

  5.   

    "无法连接到服务器,用户xxx登陆失败"该错误产生的原因是由于SQL Server使用了"仅 Windows"的身份验证方式,
    因此用户无法使用SQL Server的登录帐户(如 sa )进行连接.解决方法如下所示:1.在服务器端使用企业管理器,并且选择"使用 Windows 身份验证"连接上 SQL Server
    操作步骤:
    在企业管理器中
    --右键你的服务器实例(就是那个有绿色图标的)
    --编辑SQL Server注册属性
    --选择"使用windows身份验证" --选择"使用SQL Server身份验证"
      --登录名输入:sa,密码输入sa的密码
    --确定2.设置允许SQL Server身份登录
    操作步骤:
    在企业管理器中
    --展开"SQL Server组",鼠标右键点击SQL Server服务器的名称
    --选择"属性"
    --再选择"安全性"选项卡
    --在"身份验证"下,选择"SQL Server和 Windows ".
    --确定,并重新启动SQL Server服务.在以上解决方法中,如果在第 1 步中使用"使用 Windows 身份验证"连接 SQL Server 失败,
    那就通过修改注册表来解决此问题:1.点击"开始"-"运行",输入regedit,回车进入注册表编辑器
    2.依次展开注册表项,浏览到以下注册表键:
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer]
    3.在屏幕右方找到名称"LoginMode",双击编辑双字节值
    4.将原值从1改为2,点击"确定"
    5.关闭注册表编辑器
    6.重新启动SQL Server服务.此时,用户可以成功地使用sa在企业管理器中新建SQL Server注册,
    但是仍然无法使用Windows身份验证模式来连接SQL Server.
    这是因为在 SQL Server 中有两个缺省的登录帐户:
    BUILTIN\Administrators
    <机器名>\Administrator 被删除.
    要恢复这两个帐户,可以使用以下的方法:1.打开企业管理器,展开服务器组,然后展开服务器2.展开"安全性",右击"登录",然后单击"新建登录"3.在"名称"框中,输入 BUILTIN\Administrators4.在"服务器角色"选项卡中,选择"System Administrators" 5.点击"确定"退出6.使用同样方法添加 <机器名>\Administrator 登录.说明:以下注册表键:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\LoginMode
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\ABC\MSSQLServer
    的值决定了SQL Server将采取何种身份验证模式.
    1.表示使用"Windows 身份验证"模式
    2.表示使用混合模式(Windows 身份验证和 SQL Server 身份验证).
      

  6.   

    谢谢zjcxc(邹建) ,lovcal(枫兮) 二位"还是提示用户端无法建立连接"现在已经知道不是服务端的问题了, 问题出在用户端. 因为要我同学(ADSL上网)测试是成功的.但是现在我就不知道用户端的问题出在哪里? 
      1.排除了宽频路由器防火墙的设置,因为我已经把用户端的IP设在DMZ区,也就是完全暴露在互联网上.
      2.系统是WIN2000, 不成在系统自身还有防火墙
      3.系统只装了一个norton10.0, 只有杀毒的功能,没有防火墙
      4.测试用的是windows自带的数据源连接器, 不存在自己程式有问题百思不得期解.
      会不会用户是无线上网(跟有线上网没区别呀)?? 会不会是路由器有问题呀(我是远程控制用户端,没办法换啦.用户是个电脑白痴,更不可能)?? 是不是自己还有问题呀.嘿嘿, 郁闷.各位帮我想想还有没有其它方面的原因呀
      

  7.   

    TO:hank212(Impossible Is Nothing.) 
    是的,用户是通过无线连接D-link宽频路由器上网的.