以下nsis代码通过oledb驱动程序与数据库通信。但是启用 TLS 1.2 后,连接失败。
MSSQL_OLEDB::SQL_Logon "$ServerName" "UserId" "Pwd"
Pop $0
DetailPrint "$0"
MSSQL_OLEDB::SQL_GetError
Pop $0
DetailPrint "$0"
Pop $0
连接字符串能够成功连接到TLS 1.0。但是在禁用TLS 1.0和TLS 1.2之后,在运行此可执行文件时,它会显示以下错误。
SQL State: 0x80004005 - Native: 0 - Message: [DBNETLIB][ConnectionOpen (SECCreateCredentials()).]SSL Security error.
可能是因为驱动程序 MSSQL_OLEDB.dll不支持TLS 1.2。 Microsoft已经发布了用于SQL Server的Oledb驱动程序的新版本。 https://blogs.msdn.microsoft.com/sqlnativeclient/2017/10/06/announcing-the-new-release-of-ole-db-driver-for-sql-server/
但是看来sis的oledb插件中没有更新。
对此有任何解决方法吗? 预先感谢!