cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
unnic_arcanane
Level 4

Support for TLS 1.2

Hi, I enabled TLS 1.2 in the local Windows server which hosts the SQL database server too. After enabling TLS 1.2 through registry entries and doing the required settings, I am able to connect to the SQL Server securely through client tools like Microsoft Management Studio. But when Installation is executed, the OnSQLLogin() function throws error and SQLLogin dialog of InstallShield is not able to connect to the local database server. I am getting the following error. "Error 27502. Could not connect to Microsoft SQL Server '(Local)\SQLEXPRESS'. [DBNETLIB][ConnectionOpen (SECCreateCredentials()).]SSL Security error. (18)" But other database client tools are able to connect to SQL Server. Only InstallShield's SQLLoginDialong fails to connect with above error. Screenshot is attached. How to resolve this error.? Thanks Unnikrishnan
0 Kudos
(11) Replies
Jenifer
Flexera Alumni

Hi @unnic_arcanane ,

 

Did you configure your project to use a database driver that has support for TLS 1.2, such as SQL Server 2008 Native Client? By default, installations that are created in InstallShield use the SQL Server OLE DB provider which has no TLS 1.2 support.

See http://blogs.flexerasoftware.com/installtalk/2012/05/tips-for-sql-server-2012-express-localdb-support.html on how to configure InstallShield to use a different driver.

 

Thanks,

Jenifer

0 Kudos

Hi,

I edited ISQLDBMetaData table and changed the values to '{ODBC Driver 11 for SQL Server}' along with  other few columns. After this change, SQLLogin works fine for fresh installs on TLS 1.2 enabled Windows servers and MS SQL Servers. 

But, when I perform major upgrades on old builds (Non-TLS 1.2 enabled setups), the SQLLogin fails when InstallShield tries to execute the newer scripts after comparing the ISSchema of table, InstallShield.

The error occurs at:

Executing op: ActionStart(Name=ISSQLServerInstall,,)

Snippet from Log:

1: Attempting to establish the SQL connection... Server: SERVER2012R2, Database: MyDBName 
1: ADO Error: Number: -2147217843 Description: [Microsoft][ODBC Driver 11 for SQL Server][SQL Server]Login failed for user 'instloginuser'. Source: Microsoft OLE DB Provider for ODBC Drivers SQL State: 28000 Native Error: 18456
MSI (s) (58!9C) [04:52:56:249]: Product: ManageExpress (64-bit) -- Error 27502. Could not connect to Microsoft SQL Server 'SERVER2012R2'. [Microsoft][ODBC Driver 11 for SQL Server][SQL Server]Login failed for user 'instloginuser'. (18456)

Error 27502. Could not connect to Microsoft SQL Server 'SERVER2012R2'. [Microsoft][ODBC Driver 11 for SQL Server][SQL Server]Login failed for user 'instloginuser'. (18456)
CustomAction ISSQLServerInstall returned actual error code 1603 (note this may not be 100% accurate if translation happened inside sandbox)
MSI (s) (58:AC) [04:52:56:405]: Note: 1: 2265 2: 3: -2147287035
MSI (s) (58:AC) [04:52:56:405]: User policy value 'DisableRollback' is 0
MSI (s) (58:AC) [04:52:56:405]: Machine policy value 'DisableRollback' is 0
Action ended 4:52:56: InstallFinalize. Return value 3.

 

What could be the reason that it fails for Upgrades?

 

Thanks

Unni

0 Kudos

Hi @unnic_arcanane ,

 

The error "Login failed for user '<user_name>'. (Microsoft SQL Server, Error: 18456)" seems to be more common one and based on state of error you can proceed for fix.Below article has some details about it.

https://support.microsoft.com/en-za/help/555332/login-failed-for-user-error-message-when-you-log-on-to-sql-server

there is common suggestion to run  as administrator too,not sure whether that can help!!

https://stackoverflow.com/questions/20923015/login-to-microsoft-sql-server-error-18456

 

Thanks,

Jenifer

0 Kudos

Hi Jenifer,

Thanks for the quick reply.

But the solution listed in the link is basic. I could connect to the same SQL Server using the same login and credentials using client tools like OSQL, SQL Server Management Studio. I used debug prints for username and password to confirm that these are valid.

the issue pops up for Upgrades only and Fresh install it works fine.

Thanks

Unni

0 Kudos

Hi @unnic_arcanane ,

 

Can you please attach complete log here to get idea on what actually causes the issue only on Major-upgrade?

 

Thanks,

Jenifer

0 Kudos

Hi,

I need sometime to edit the log files as it is production version.

In the meantime, I notice the following error in the log file before the display of error message to user, (though the table, ISSQLRequirement, exists in direct editor)

ISSQLRequirement table does not exist...

Log Snippet Follows:

1: Reading the SQL script data from ISSQLConnection table...
1: Reading the SQL script data from ISSQLConnection table...
1: Reading the SQL script data from ISSQLConnection table...
1: CSQLServerList::DoSQLServerList() begins.
1: CSQLServerList::DoSQLServerList: Checking if the ComboBox table exists.
MSI (c) (94:28) [10:48:21:754]: PROPERTY CHANGE: Deleting IS_SQLSERVER_FILTERED_FLATLIST property. Its current value is '(local)'.
1: CSQLServerList::ClearListBoxOrComboBox: Deleting items from the IS_SQLSERVER_SERVER ComboBox.
1: CSQLServerList::DoSQLServerList: Loading database server metadata from the ISSQLDBMetaData table.
1: CSQLServerList::DoSQLServerList: Loading ODBC APIs from ODBC32.dll.
1: CSQLServerList::DoSQLServerList: Retrieving database server names on the network, and registered on the local machine.
1: CSQLServerBrowse::GetServerList() begins.
1: CSQLServerBrowse::GetServerList: Attempting to retrieve server names for Microsoft SQL Server.
1: CSQLServerBrowse::GetServerList: Retrieving local instance names of Microsoft SQL Server from registry.
1: CSQLServerBrowse::GetServerList: Retrieving alias names of Microsoft SQL Server from registry.
1: CSQLServerBrowse::GetServerList: Retrieving server names registered in system DSNs.
1: CSQLServerBrowse::GetServerList: Retrieving server names registered in user DSNs.
1: CSQLServerBrowse::GetServerList() ends.
MSI (c) (94:28) [10:48:21:754]: PROPERTY CHANGE: Adding IS_SQLSERVER_FILTERED_FLATLIST property. Its value is '(local)'.
1: CSQLServerList::PopulateListBoxOrComboBox: Populating the IS_SQLSERVER_SERVER ComboBox.
1: CSQLServerList::DoSQLServerList() ends.
1: Reading the SQL script data from ISSQLConnection table...
1: Reading the SQL script data from ISSQLConnection table...
1: Beginning SQL Server Costing Process...
1: Reading the SQL script data from ISSQLConnection table...
1: ISSQLRequirement table does not exist...
1: Finished SQL Server Costing Process...
MSI (c) (94:28) [10:48:24:551]: PROPERTY CHANGE: Adding IS_SQLSERVER_STATUS property. Its value is '0'.

 

0 Kudos

I am having the same problem. A number of the replies above are to 'dead' links.

"I edited ISQLDBMetaData table and changed the values to '{ODBC Driver 11 for SQL Server}' along with  other few columns. "

Which column did you change in ISSQLDBMetaData table? AdoDriveName? What other columns did you change?

Thanks

0 Kudos

@rguggisberg 

InstallShield's Support first suggested to set AdoDriverName=sqlncli11. But that didn't work.
Later they suggested to use the following values.

AdoDriverName    {ODBC Driver 11 for SQL Server}
AdoCxnDriver        Driver=
AdoCxnServer       Server=
AdoCxnDatabase Database=
AdoCxnUserID      Uid=
AdoCxnPassword Pwd=
AdoCxnWindowsSecurity Trusted_Connection=Yes

Rest of the columns are defaults.

0 Kudos

Hi @rguggisberg ,

 

Below one is the link that is mentioned in my previous reply:

https://blog.flexerasoftware.com/software-installation/2012/05/tips-for-sql-server-2012-express-localdb-support/

 

 

Thanks,

Jenifer

Thank you Jenifer and thanks to Hidenori for that helpful post. To make this work I had to change the default driver from sqloledb to sqlncli11 and add Microsoft SQL Server 2012 Native Client in Redistributables view.

0 Kudos