SQLOLEDB连接局域网上的SQLServer2000,必须先用Guest(密码为空)登录服务器之后,才能连通,怎么办?
我发现,不是所有的机器都这样。有些客户机没有设Guest用户,似乎就不用从网上邻居登录。98也不用。
怎么办?我想在代码中完成这个工作!

解决方案 »

  1.   

    身份验证模式是“SQL Server 和 Windows”
    我的connection string是:
    "Provider=SQLOLEDB.1;User ID=sa;Password=password;    Persist Security Info=True; Initial Catalog=ABC;Data Source=192.168.101.27"
    大多数时候没问题!除了有些机器必须手动在网上邻居登录之外。
    怎么办?
      

  2.   

    "driver={sql server};uid=sa;pwd=password;database=abc;server=192.168.101.27"试试这个
      

  3.   

    身份验证模式是“SQL Server 和 Windows”用这种方式,必须先通过Windows的验证
      

  4.   

    To: antshome(星星我来了),不灵,你的方法还是一样。
    To: iwillgo2() 那你能否指点一下?谢谢!
      

  5.   

    up!大家都是怎么解决的?不可能没有遇到这种情况吧?在win2000工作站上。
      

  6.   

    重新建立一个登陆用户,把它的登陆方式改为 SQL Server 身份验证,然后再程序里用这个用户登陆你的程序。试试看,应该可以的
      

  7.   

    装过N多次SQL 2000了,从没出现你这样的问题。一般是双重验证方式,客户端基本不用设置,都能连上
      

  8.   

    唉,: antshome(星星我来了) 的方法跟我的其实是一回事啊。
    你的客户端是win2k还是win98?据我的经验是,win2k客户机禁用Guest的时候,不用登录网上邻居,win98也是。唯独win2k有guest用户的时候需要从网上邻居登录服务器。请朋友们试验一下。
     
     
      

  9.   

    iwillgo2() 的方法不是也跟我说的“SQL Server 和 Windows”一样吗?
    SQL Server2000提供两种认证方式:一种是“SQL Server 和 Windows”,另一种是“Windows认证”,我想,你说的其实就是我已经用的。……
      

  10.   

    着急……难道我的设置跟你们的不同吗?
    是标准安装啊!
    采用“SQL Server 和 Windows”双重验证。
    且听听大家说说,其中的Windows是怎么验证的。
    Windows验证,我的理解,是客户机的登录用户必须是服务器的用户组中的一个用户。我所说的局域网,是没有域的。
    到底我该怎么解决?
      

  11.   

    是win2000那台机子的用户设置问题。
      

  12.   

    现在公司的网络就是采用工作组方式,没有采用域,不可能因为我一个人的需要,就改变公司的整个网络。
    现在,我还想请问诸位,是否客户端开机登录自己的Win2k的时候,这个用户名和密码必须在SQL Server所在的Win2k机器上事先设定好?
    换句话说,我在SQL Server所在的Win2k机器上只有两个用户名,一个是Administrator(密码不为空,这个密码没有告诉任何别人,仅仅我自己用),另一个用户是Guest,密码为空,没有禁用,帐号永不过期。
    现在,如果客户在他自己的机器上用aaa用户名登录他的Win2k,怎样才能连接到服务器SQL Server数据库?
      

  13.   

    上面说的,如果没有设定2K的机子为域控制器,你用aaa用户连2K是采用对等网方式,要通过网上邻居访问,必须经过身份验证,如果你的2K已经设为域控制器,则你的AAA用户必须是2K机器是已有的用户,此时是C/S访问模式,不是对等网。因为在连接的时候2K的机器中已经有了AAA的用户,所以不需要验证。
      

  14.   

    因为回答问题的时候环境不够无法再现,但推测可能是因为客户端的协议设置引起的。
    在【客户端网络实用工具】中可以设置客户端访问SQL2000的协议,缺省的协议包括TCP/IP和Named Pipe,顺序是TCP/IP在前,所以在一个TCP/IP网络中,任何电脑可以不需要Windows访问你的SQL Server实例。如果缺省协议是Namped Pipe(我猜测SQL Server未来的版本会使用MSMQ),就必须验证身份,不然其他电脑无法正确读取Pipe中的信息。sa账号永远是SQL验证的
      

  15.   

    你必需在运行程序之前先和要连接的计算机通讯一回,比如“ PING 主机名” 或 “PING IP”,
    你在写代码时要注意一点,当你断开和主机的连接时不要时间超过5分钟,如果超过5分钟很有可能出现以前的问题。