遭遇:“用户 'NT AUTHORITY\NETWORK SERVICE' 登录失败”
以前连接数据库都是用的“用户id、用户口令”模式登陆的:
<add name="SQLConnStr" connectionString="data source=.; User Id=sa; Password=; Initial Catalog=数据库名;max pool size=512;" providerName="System.Data.SqlClient"/>
今天想用用“windows”的登陆模式,以后部署程序就不要再为不知道到用户口令而发愁了。
<add name="SQLConnString" connectionString ="Server=.; Database=数据库名; Integrated Security=SSPI;" />
或:
<add name="SQLConnString" connectionString = "Data Source=.;Initial Catalog=数据库名; Integrated Security=SSPI;" />
设置好后,开始启动程序,郁闷的发现出错了:
用户 'NT AUTHORITY\NETWORK SERVICE' 登录失败
从网上开始查找答案找到的答案基本上如下:
第一步:把'NT AUTHORITY\NETWORK SERVICE' 添加到Administrator组中
我的电脑-->右键-->管理-->本地用户和组
选择“组”-->双击Administrators-->单击“添加”-->单击“高级”-->单击“立即查找”-->在下面的列表中选择Network Service用户-->两次单击“确定”-->加入。
第二步 在企业管理器中加入NetWord Service用户
打开Sql Server企业管理器-->选择数据库实例-->打开“安全性”节点-->选择“登录”-->在右边的列表中单击右键 -->选择“新建登录”-->在“常规”选项卡中单击“名称”旁边的 按 钮“...”-->选择“Administrators”组 -->单击下面的“成员”按钮-->选择“Network Service”-->单击“添加”按钮-->单击“确定”,返回“新建登录”对话框-->保证身份验证类型为“windows验证” 和“允许访问”-->单击“确定”-->关闭“企业管理器”
第三步
重新运行asp.net程序,数据库连接字符串选择windows验证即可。
另孟子E章设置方法:
在 网上搜索“用户 'NT AUTHORITY\NETWORK SERVICE' 登录失败”这个错误,可以看到很多解答都有一条将“NETWORK SERVICE”账户加入 Administrators组的步骤,将匿名账户加入到管理员组,则会存在安全风险。实际上,解决这个问题完全没有必要将匿名帐户加入到管理员组的。设 置方法如下:
1,在要设置的数据库中,新建数据库用户:
2,在新建用户的对话框里,在登录名后面选择“新建”:
3,在“新建登录”对话框中的“常规”选项卡里,名称后面将“NT AUTHORITY\NETWORK SERVICE”
4,打开“数据库访问”选项卡,在你的数据库上打勾,在角色前打勾。单击“确定”按钮。
我发现他们基本上设置的都是SQL2000的,和SQL2005的设置有区别。
特此把我在SQL2005下设置的过程记录如下:
1. 在 安全性->登录名->“新建登陆名称……”
2. 在打开的“新建”页面-->搜索…… --->查找到“NT AUTHORITY\NETWORK SERVICE”
3. 在打开的“新建”页面-->服务器角色--->默认勾选“Public”,我们还需要勾选上"sysadmin"
4. 在打开的“新建”页面-->用户映射 --->选择上对应的数据库名称(或直接选择master)
5. 其他设置不需要动。
这样设置下来,我们的程序就可以和以前一样运行起来了。