关于iis发布后NT AUTHORITY/NETWORK SERVIC无法登陆

出现的问题:

网站在vs2010中搭建好,利用localhost在本机访问是没有问题。当在iis中发布时,出现了

无法打开用户默认数据库。登录失败。用户 'NT AUTHORITY\NETWORK SERVICE' 登录失败

的问题。

关于iis发布后NT AUTHORITY/NETWORK SERVIC无法登陆_第1张图片

其中,文件夹权限已经添加NETWORK SERVICE,但并不奏效。

同时,根据网上已有的方法尝试解决也不奏效:

--------以下为网上查阅的方法(http://bbs.csdn.net/topics/250078360)----------

用户 'NT AUTHORITY\NETWORK SERVICE' 登录失败。 
第一步:把'NT AUTHORITY\NETWORK SERVICE' 添加到Administrator组中 
我的电脑-->右键-->管理-->本地用户和组 
选择“组”-->双击Administrators-->单击“添加”-->单击“高级”-->单击“立即查找”-->在下面的列表中选择Network Service用户-->两次单击“确定”-->加入。 

第二步 在企业管理器中加入NetWord Service用户 
打开Sql Server企业管理器-->选择数据库实例-->打开“安全性”节点-->选择“登录”-->在右边的列表中单击右键-->选择“新建登录”-->在“常规”选项卡中单击“名称”旁边的按钮“...”-->选择“Administrators”组-->单击下面的“成员”按钮-->选择“Network Service”-->单击“添加”按钮-->单击“确定”,返回“新建登录”对话框-->保证身份验证类型为“windows验证”和“允许访问”-->服务器角色-->钩选“System Administrators”-->单击“确定”-->关闭“企业管理器” 

-------以上摘自网络---------------

按照上述方法解决时,对本次需要添加Network Service的数据文件,已经属于dbo,在更改映射的时候,提示“Rename failed for user ‘dbo’.......Cannot alter the user 'dbo'(error 15150)”等问题。查看错误详细信息,有15150错误,继而查到一篇MSDN上的帖子http://social.msdn.microsoft.com/Forums/en-US/sqlsecurity/thread/4fab1ac4-d601-4cae-8619-fbfea3b4c2c8,按照提示,将原先的配置错误的Network Servicr登陆名删除。

删除时提示并不能完全删除用户映射,需要在相应数据库中删除。在刚才添加登录名映射的数据库“安全性”->"用户"选项中一一删除Network Service,然后再添加。

这是用到了MSDN上的那个帖子,顺利解决。

这是那篇帖子解决问题的大概意思:

如果Network Service是dbo的登录名,那么你首先要将Network Service从dbo中移除。如果dbo是数据库的owner,你应该先把owner赋予别的用户,然后你再添加你要的用户映射。


后记:

第一次遇到这个问题查找了很多解决办法,包括 上述的方法。可是第一次解决的时候,没有记录下具体的解决过程。后来再次出现,于是花了大量时间把上述的过程一个一个复查,包括权限(即是需要访问的数据库要添加NETWORK SERVER的访问权限)。。。

不过,在VS2010中用“在浏览器中查看”登陆后台却可以成功,在iis发布中就不能成功。我用的是|datadirection|\aspnetdb.aspx的方式,数据库文件放置在app_data中,后来尝试,在对应实例名中再次添加数据库后成功解决。依据我个人对服务器操作的记录,主要修改的地方是:

1、总而言之按照上述步骤,你需要做的是:添加Network Service对数据库问价的访问权限,将app_data中的数据库附加到对应数据库实例名中,添加Network Service登录名并映射到你需要连接的数据库。

2、要确保NT AUTHORITY\NETWORK SERVER可以用你所使用的登陆方式(分为window登陆和SQL Server登陆),用你可以登陆的方式在SQL SERVER2008中登陆实例名(我所使用的是.\SQLEXPRESS,windows方式登陆),然后在对应数据库实例上点击右键打开属性,如下图:

关于iis发布后NT AUTHORITY/NETWORK SERVIC无法登陆_第2张图片

因为我已经添加了NETWORK SERVICE登录名,所以在弹出框中看到“权限”-->点击NETWORK SERVICE看到下面是这样的:

关于iis发布后NT AUTHORITY/NETWORK SERVIC无法登陆_第3张图片
说明可以用sa用户登陆,sa授权NETWORK连接,但XXX\Administrator(通常是你需要连接数据的owner)并没有授权,点击选中上面的“连接SQL”,后按确定。

3、再次尝试登陆后台数据库,问题解决。


你可能感兴趣的:(asp.net)