当Perl DBI试图连接到我的Manager数据库版本11.0.7001 (这是Server管理器中列出的内容)时,我的Perl IIS web应用程序收到了SSL错误。Perl应用程序在IIS下运行,我的IIS基本用户设置连接设置为特定用户(域管理员)。
Sever数据库与IIS驻留在同一个系统上。Perl的发行版为Strawberry Perl;IIS的版本为8.5.9600.16384。
我可以在本地服务器上使用SQL Server Manager连接到数据库,也可以从我的工作站远程连接数据库。连接类型是SQL用户名和密码。IIS应用程序侦听端口8085。IIS权限不受限制,也没有SQL server连接字符串作为IIS的一部分。
应用程序的第一页加载,但此第一页不尝试连接到Server数据库。
我已经看了一段时间了--像这个one --并尝试了一些建议,比如建立一个系统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=arlsql\arlsql;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# ODBC对象的.Net客户端应用程序成功地访问了基于web的Perl DBI代码失败的相同数据库。客户端应用程序的用户名和密码与Perl CGI中使用的用户名和密码相同。
此应用程序的IIS用户以域管理员的身份运行,但在创建DBI连接时使用相同的用户名和密码。数据库是为SQL用户名和密码设置的,正如前面所述,没有安全设置,至少我可以知道。
发布于 2020-01-06 16:37:06
这并不能回答问题,而是一种解决办法。我考虑了以下解决办法,因为我仍然想知道为什么DBI调用对特定用户失败。
我将IIS基本用户设置连接从特定用户(域管理员)切换到应用程序用户(通过身份验证)。
在进行此更改并重新启动IIS之后,Perl连接工作正常,但为什么?
https://stackoverflow.com/questions/59581622
复制相似问题