Jus*_* R. 16 sql-server asp.net iis-7 database-permissions
我的ASP.NET v3.5 Web应用程序在尝试打开与SQL Server 2008数据库的连接时抛出以下异常:
System.Data.SqlClient.SqlException:无法打开登录请求的数据库"MyDbName".登录失败.用户'NT AUTHORITY\IUSR'登录失败.
问题是,我已经添加NT AUTHORITY\IUSR到服务器的登录列表和数据库的用户列表中.对于服务器,我已授予用户Public角色,并且我已授予数据库db_datareader权限.
我也授予了相同的权限NT AUTHORITY\NETWORK SERVICE,这是运行应用程序池的标识.
如果有所不同,Web应用程序由IIS7托管.DB和IIS同时位于同一物理计算机上时出现问题.
这里的诀窍是NT AUTHORITY\NETWORK SERVICE实际上在数据库中显示为DOMAINNAME\MACHINENAME$(注意$符号!).也就是说,当您从Web服务器跨越机器边界到SQL Server时,如果您使用NETWORK SERVICE或LOCAL SYSTEM帐户,SQL Server将看到计算机帐户.如果您使用任何其他非域帐户,SQL Server将不会收到您的凭据.
我对您的错误消息感到有点困惑.说实话,我不认为当数据库在另一个盒子上时,你会看到除了之外的任何东西Login Failed for NT AUTHORITY\ANONYMOUS LOGON.
IUSR用于匿名网站,不能通过线路传递给SQL Server.如果你在同一台机器上做所有事情,你可能会找到一种工作方式,但我永远不会知道,因为我从来没有这样做...... ;-)
| 归档时间: |
|
| 查看次数: |
67784 次 |
| 最近记录: |