SQL Server Express中无法将[IIS APPPOOL.NET v4.5]用户添加至Server 3数据库的问题求助
SQL Server Express中无法将[IIS APPPOOL.NET v4.5]用户添加至Server 3数据库的问题求助
兄弟,这种应用池账户在SSMS图形界面里确实容易找不到或者不识别,我之前踩过这个坑,给你分享几个靠谱的解决办法:
方法一:直接用T-SQL命令搞定(最稳妥,避开界面bug)
别在图形界面里瞎折腾了,直接在Server3的SQL实例里执行脚本更高效:
- 先创建对应的登录账户(如果还没建的话):
-- 如果Server3和Server4是同一台机器,用这个 CREATE LOGIN [IIS APPPOOL\.NET v4.5] FROM WINDOWS; -- 如果是不同机器,记得加上Server4的机器名!比如Server4叫MyServer4,就用这个 CREATE LOGIN [MyServer4\IIS APPPOOL\.NET v4.5] FROM WINDOWS;
这里的方括号是必须的,因为账户名里有特殊字符,SQL得用它来识别完整名称。
- 接着给目标数据库添加用户并分配权限:
USE 你的目标数据库名; -- 对应上面的登录名,保持一致 CREATE USER [IIS APPPOOL\.NET v4.5] FOR LOGIN [IIS APPPOOL\.NET v4.5]; -- 举个例子,给只读权限的话执行这句 EXEC sp_addrolemember 'db_datareader', '[IIS APPPOOL\.NET v4.5]'; -- 如果需要读写权限就换成db_datawriter,或者根据需求调整角色
方法二:用SSMS图形界面的正确操作方式
如果你非要用界面操作,别直接在数据库属性里找账户,按这个步骤来:
- 打开Server3的SQL实例,展开安全性→登录名,右键选新建登录名
- 在“常规”选项卡的“登录名”输入框里,手动完整输入
IIS APPPOOL\.NET v4.5(跨机器的话加机器名),然后点击右边的检查名称按钮,这时候系统应该就能识别到这个账户了 - 切换到用户映射选项卡,勾选你要授权的数据库,设置好对应的角色权限(比如db_datareader),最后点确定就行
关键提醒!
要是Server3和Server4是不同的服务器,千万别忘了加Server4的机器名!因为IIS APPPOOL\.NET v4.5是Server4本地的应用池标识,Server3的SQL默认只会找本地的账户,所以必须写成[机器名\IIS APPPOOL\.NET v4.5]才能识别到。
备注:内容来源于stack exchange,提问作者classicaspordeath
相关产品推荐
相关产品推荐

