把本机XP上写的程序放到SERVERS2003上调试时出现此问题,在网上查了一下,是因为没有给NETWORK SERVICE用户赋予权限,网上的资料如下:
在Windows XP当中,ASP.NET的运行帐号是ASPNET,而在Windows server 2003当中,运行帐号则改为了Network Service,直接把这个用户加到sql server的登陆帐号里面就好了,这样很多例子就不用去改连接字符串了!
第一步:把'NT AUTHORITY\NETWORK SERVICE' 添加到Administrator组中
我的电脑-->右键-->管理-->本地用户和组选择“组”-->
双击Administrators-->单击“添加”-->单击“高级”-->
单击“立即查找”-->
在下面的列表中选择Network Service用户-->两次单击“确定”-->加入。
第二步 在企业管理器中加入NetWord Service用户
打开Sql Server企业管理器-->
选择数据库实例-->
打开“安全性”节点-->选择“登录”-->
在右边的列表中单击右键-->选择“新建登录”-->
在“常规”选项卡中单击“名称”旁边的按钮“...”-->
选择“Administrators”组-->单击下面的“成员”按钮-->
选择“Network Service”-->单击“添加”按钮-->
单击“确定”,返回“新建登录”对话框-->
保证身份验证类型为“windows验证”和“允许访问”-->
单击“确定”-->
关闭“企业管理器”
第三步重新运行asp.net程序,数据库连接字符串选择windows验证即可。
因为我的数据库是2005的,以上的是2000的操作方法,所以数据库添加用户应该如下操作:
1.打开SQL Server Manegement Studio
2.在 安全性 - 登录名 中 添加 NETWORK SERVICE
3.双击该用户 在服务器角色 中 勾选 sysadmin
OK 问题解决
你也可以根据自己的需要任意给用户NETWORK SERVICE授予相应的权限