Sql server 正在尝试授予ASP.NET对我的书中的示例数据库的访问权限
我正在尝试设置这本书以在IIS下运行数据库应用程序,并授予 ASP.NET访问数据库。这本书的名字是: Murach的ASP.NET 4 Web编程与C 2010 Murach:培训与参考 这本书附带了两个文件来实现这一点: grant_access_windows_7_vista.bat运行此文件:grant_access_windows_7_vista.sql 以下分别是文件:Sql server 正在尝试授予ASP.NET对我的书中的示例数据库的访问权限,sql-server,iis-7,asp.net,Sql Server,Iis 7,Asp.net,我正在尝试设置这本书以在IIS下运行数据库应用程序,并授予 ASP.NET访问数据库。这本书的名字是: Murach的ASP.NET 4 Web编程与C 2010 Murach:培训与参考 这本书附带了两个文件来实现这一点: grant_access_windows_7_vista.bat运行此文件:grant_access_windows_7_vista.sql 以下分别是文件: @ECHO off :: batch file for :: Murach's ASP.NET 4 Web Pr
@ECHO off
:: batch file for
:: Murach's ASP.NET 4 Web Programming with C# 2010
:: company: Mike Murach & Associates, Inc.
:: date: March 16, 2011
::
:: Uses SQLCMD utility to run a SQL script that grants
:: ASP.NET access to the Halloween database.
ECHO Attempting to grant ASP.NET access to the Halloween database . . .
sqlcmd -S localhost\ -E /i grant_access_windows_7_vista.sql
ECHO.
ECHO If no error message is shown, then access has been granted to the database.
ECHO.
PAUSE
以下是.sql文件:
use Halloween
go
sp_grantlogin 'IIS APPPOOL\ASP.NET v4.0'
go
sp_grantlogin 'IIS APPPOOL\ASP.NET v4.0'
go
sp_grantdbaccess 'IIS APPPOOL\ASP.NET v4.0'
go
sp_addrolemember 'db_owner', 'IIS APPPOOL\ASP.NET v4.0'
go
exit
然后,我运行包含单词exit的查询,得到的结果如下:
Msg 15401, Level 11, State 1, Procedure sp_grantlogin, Line 49
Windows NT user or group 'IIS APPPOOL\ASP.NET v4.0' not found. Check the name again.
Msg 15401, Level 11, State 1, Procedure sp_grantlogin, Line 49
Windows NT user or group 'IIS APPPOOL\ASP.NET v4.0' not found. Check the name again.
Msg 15401, Level 16, State 1, Line 1
Windows NT user or group 'IIS APPPOOL\ASP.NET v4.0' not found. Check the name again.
Msg 15410, Level 11, State 1, Procedure sp_addrolemember, Line 75
User or role 'IIS APPPOOL\ASP.NET v4.0' does not exist in this database.
Msg 156, Level 15, State 1, Line 2
Incorrect syntax near the keyword 'exit'.
我只是一个初学者,对SQL或IIS不太了解。有人帮我做这个吗
这项工作将受到极大的赞赏。我也会通过搜索来尽我的职责
谷歌,但如果有人能解释为什么这不起作用,那就太不可思议了
这是我试过的。。。仍然没有运气:
IIS 7正在尝试使用IIS应用程序池标识访问SQL数据库
因此,必须首先授予IIS 7应用程序池对SQL server的访问权限
要做到这一点,请进入SQLServerManagementStudio->服务器实例->安全->登录->新登录
登录名将为IIS APPPOOL\ASP.NET v4.0。这是因为每次您在IIS7中创建应用程序池时,它都会创建一个与您的应用程序池使用相同名称的标识。在您的情况下,您使用的是asp.net 4附带的默认应用程序池
然后在数据库上,转到安全->登录->新建登录,给它一个别名,然后选择在上一步IIS APPPOOL\ASP.NET v4.0中添加的用户对象,然后给它db_所有者或任何您需要的模式/角色权限
当我尝试上述方法时,我得到的只是一个错误:
"IIS APPPOOL\ASP.NET v4.0" is not a valid name because it contains invalid characters. (Microsoft SQL Server, Error: 15006
我也有这个问题。您必须首先在SSMS->Security->Logins中为IIS APPPOOL\ASP.NET v4.0创建登录,而不是直接在目标数据库上
见我找到的这一页: 只需更改sql脚本即可消除IIS APPPOOL\ASP.NET v4.0 grant命令,并将连接字符串更改为现有用户。不要把头撞到墙上。我知道这是一条老线索,但我今天在同一本书的最新版本上也遇到了同样的问题 书籍:Murach ASP.NET 4.5 web编程与C 2012 问题:在设置书本文件期间,grant_access脚本返回以下错误: 找不到Windows NT用户或组“IIS APPPOOL\ASP.NET v4.5”。检查 请再说一遍这个名字 我的设置:笔记本电脑是运行IIS 8.5和VS2013 Premium的Windows 8.1 为了解决这个问题,我更新了grant_访问脚本 更改“IIS APPPOOL\ASP.NET v4.5”的所有事件 至:“IIS APPPOOL\.NET v4.5” 这是IIS管理器中应用程序池中的正确拼写。如果你的版本与我的不同,你应该在你的机器上验证拼写 现在再次运行脚本,它应该可以工作了 先决条件:我必须在特定设置上注册asp.net;使用下面的链接 dism.exe/Online/Enable Feature/all/FeatureName:IIS-ASPNET45