We recently migrated our database to 19c. Have a few .net applications which connect to Oracle db using system.data.oracleclient. The version of Oracle client installed is 12C. After the database upgrade, .net applications are unable to connect to the database due to the ORA-28040 No matching authentication protocol error.
-
Does this answer your question? [ORA-28040: No matching authentication protocol exception](https://stackoverflow.com/questions/24100117/ora-28040-no-matching-authentication-protocol-exception) – InbetweenWeekends Jun 02 '20 at 16:47
2 Answers
Your Oracle client is not compatible by default with the upgraded database; it isn't hashing your password to the latest, most secure standard. You either need to upgrade your client to 12cR2 or later, or add the following lines to sqlnet.ora on your database server to force it to accept older (less secure) password hashes:
sqlnet.allowed_logon_version_server=12
sqlnet.allowed_logon_version_client=12
If that still doesn't work, you can try setting the values to "11", but don't go any lower than that for security reasons.
Note that you must reset the password of the user you want to use after applying these configurations.

- 6,457
- 2
- 6
- 16
Note you have to create the user you want to use after applying those configuration else it will not work.
I don't think that's quite correct. In my experiences of this issue, you have to reset the password of any 'broken' user, using another account (that can log on) and a correctly configured (by manual configuration or by default) client.

- 83
- 1
- 1
- 5
-
The client version doesn't matter when resetting the password: the hashes are generated by the server for all supported versions (per the `allowed_logon_version_*` settings), regardless of the specific client version in use at the time. – pmdba May 05 '23 at 14:58
-
As always with Oracle - things aren't necessarily so binary: [link](https://support.oracle.com/knowledge/Oracle%20Database%20Products/2296947_1.html) – Stephen Emm May 10 '23 at 15:38