IIS 连接 IIS 基本用户设置特定用户无法使用 Perl DBI 连接到 SQL Server



当Perl DBI尝试连接到我的MS SQL Server数据库版本11.0.7001时,我的Perl IIS Web应用程序收到SSL错误(这是SQL Server Manager中列出的内容(。Perl 应用程序在 IIS 下运行,我的 IIS 基本用户设置连接设置为"特定用户(域管理员("。

SQL 服务器数据库与 IIS 驻留在同一个系统上。Perl 的发行版是 Strawberry Perl;IIS 的版本是 8.5.9600.16384。

我可以在服务器上本地使用 SQL Server 管理器连接到数据库,也可以从工作站远程连接到数据库。连接类型为 SQL 用户名和密码。IIS 应用程序侦听端口 8085。IIS 权限不受限制,并且 IIS 中没有 SQL 服务器连接字符串。

应用程序的第一页将加载,但此第一页不会尝试连接到 SQL Server 数据库。

我一直在看Stackoverflow的帖子 - 像这个 - 有一段时间了,并尝试了一些建议,比如制作一个系统DSN(正确测试(,而不是Perl中的DSN字符串。

这些建议都没有帮助,许多但不是所有的帖子都在处理安全和证书,而不是防火墙后面的应用程序。换句话说,我没有打开安全性。

据我所知,此应用程序没有打开安全性,并且命名管道和TCP/IP已经打开,正如我读过的一篇文章中所建议的那样。

这是错误:

[Microsoft][ODBC SQL Server Driver][DBMSLPCN]ConnectionOpen (SECCreateCredentials()). (SQL-01000) at ../../include/DbArgs.pm line 266.
DBI connect('driver={SQL Server};server=arlsqlarlsql;database=BuildingPermit;uid=user;pwd=pwd','',...) failed: [Microsoft][ODBC SQL Server Driver][DBMSLPCN]SSL Security error (SQL-08001) [state was 08001 now 01000]

关于下一步尝试什么的任何建议将不胜感激。

编辑 1/6/2020

我需要补充一点,我的 C# 客户端应用程序使用 .Net ODBC 对象成功访问了基于 Web 的 Perl DBI 代码失败的同一数据库。客户端应用程序的用户名和密码与Perl CGI中使用的用户名和密码相同。

此应用程序的 IIS 用户以域管理员身份运行,但在创建 DBI 连接时使用相同的用户名和密码。数据库是为SQL用户名和密码设置的,如前所述,没有设置安全性,至少我可以知道。

这不能回答这个问题,而是一种解决方法。我认为以下解决方法,因为我仍然想知道为什么特定用户的 DBI 调用失败。

我将 IIS 基本用户设置连接从特定用户(域管理员(切换到应用程序用户(直通身份验证(。

进行此更改并重新启动 IIS 后,Perl DBI 连接正常工作,但为什么呢?

最新更新