首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >服务帐户在IIS和任务计划程序下具有不同的数据库行为

服务帐户在IIS和任务计划程序下具有不同的数据库行为
EN

Stack Overflow用户
提问于 2015-05-24 21:28:32
回答 1查看 195关注 0票数 0

我以IIS下的应用程序帐户和计划任务的身份运行相同的脚本,得到的结果截然不同。

从IIS (作为网页),我可以读取字段属性,并运行非常简单的查询,例如

代码语言:javascript
复制
SELECT * FROM SYSTEMINFO

所以到数据库的连接就存在了。

任何更“高级”的东西,都会给get带来各种错误:

代码语言:javascript
复制
SELECT SYSTEMINFOID FROM SYSTEMINFO
or
SELECT COUNT(*) FROM SYSTEMINFO
or
INSERT INTO SYSTEMINFO ( SYSTEMINFOID ) VALUES (1)

根据一些ms错误消息概述,通常给出"Microsoft未知(SQL-42000)“或"Microsoft Overflow (SQL-42000)”,这意味着“缺少访问或语法错误”(相当广泛的错误组...)

如果应用程序帐户是Administrators的成员,则一切正常(但不是一个好的解决方案),任何其他成员身份(用户、高级用户、备份操作员)都会产生相同的错误。(需要重新启动服务器才能使这些更改生效,因此调试非常耗时。)

用户拥有“替换进程令牌”和“调整内存配额”的本地策略(以及作为批处理+服务运行)。

环境看起来是一样的(除了添加了IIS web环境),并且我可以在任务管理器中看到脚本是以应用程序帐户运行的。

连接字符串为

代码语言:javascript
复制
DBI:ODBC:driver=Microsoft Access Driver (*.mdb);DBQ=C:\folder\Demo.mdb;

在IIS8.5 Win2012标准版上运行CGI,perl5.18,DBI,应用程序池使用应用程序帐户,加载用户配置文件,并将用户模拟为真

在Win 2008 R2上设置同样的设置效果很好。

连接到例如本地ms sql express数据库会产生SSL错误,即使SSL未在使用中也是如此,并且使用sql帐户进行身份验证。

花了四天时间研究所有奇怪的组合,有什么我可能忽略的设置建议吗?

(摘要:当作为应用程序帐户运行时,不是iis 8.5下的管理员脚本正在运行,连接到数据库可以正常工作,但任何比简单查询更多的查询都会导致奇怪的错误。)

EN

回答 1

Stack Overflow用户

发布于 2015-06-02 22:19:42

最后找到了一个解决方案:在IIS 8.5中,为了使服务帐户正常工作,必须将相同的用户(作为池用户)设置为通过身份验证的应用程序。

在网站下创建应用程序,选择此应用程序的基本设置,将其分配到由服务帐户运行的单独池中是不够的。

此外,必须通过选择“连接身份...”-button将“传递身份验证”设置为同一用户。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30424039

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档