• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
鱼要的是海洋,鸟要的是天空,我要的是自由!
平凡的人不平凡的人生
博客园    首页    新随笔    联系   管理    订阅  订阅

客户端可以连接 .Net程序不能连接SQL Server 2000

  工作机器(开发ASP.Net程序,.Net Framework 1.1)在域里面,SQL 2000服务器不在域中,突然出现SQL企业管理器和查询分析器都可以连接到SQL 2000服务器,而.Net程序则连不上,报错“SQL Server服务器不存在或拒绝访问”。
    以前好像也这样用过,并没有出问题,看来可能跟域的控制策略有关系,这段时间公司域策略调整比较频繁,没有登陆域的机器和域里面机器的互访渐渐出问题。
    折腾了一阵没有结果,后来猜想也许是ASP.Net使用的帐号不能通过SQL 2000服务器验证的问题。其实一直也不会怀疑这方面,因为Client连SQL Server服务器时,使用的是网络端口(默认1433端口)通讯,不需要SQL Server所在服务器操作系统的用户验证。
 
    测试如下:
    1. 我的域帐号是可以完全访问控制SQL 2000服务器的机器的。在工作机的C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\CONFIG里面,把 machine.config文件中processModel节点的userName改为我的域帐号,password设为我的域帐号的密码,重启IIS 后登陆系统,成功。任务管理器里面显示asp_net进程的启动用户为我的域帐号。
    2. 在工作机上建立一个Windows帐号ASPNETTest,加入到Administrators组中(注意帐号第一次登陆系统必须修改密码的选项要去 掉),设置密码(假设为qazQAZ123)。将C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\ CONFIG的machine.config用户名修改为ASPNETTest,密码设为这个帐号的密码(qazQAZ123)。在SQL 2000服务器上建立一个Windows帐号ASPNETTest,密码设成跟工作机一致(qazQAZ123),也加入到Administrators 组中。重启IIS后登陆系统,成功。任务管理器里面显示asp_net进程的启动用户为ASPNETTest。
 
    SQL 2000服务器的Security里面,设置的是SQL Server and Windows。如果说上面的测试跟这个有关系的话也是说不通的,程序的连接字符串里面指定SQL Server认证方式,如果SQL Server的帐号、密码不正确,会连不上SQL Server,只能说在这种情况下,SQL Server认证和Windows认证都需要通过。
    另外,ASP.Net将工作机上自己使用的帐号、密码认证信息发送给SQL 2000服务器进行Windows认证,感觉也怪怪的。是ASP.Net在这样做,还是因为域的安全控制策略导致了一个Windows的认证过程?
posted @ 2007-06-27 06:45  伊凡  阅读(709)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3