ORA-28040: No matching authentication protocol exception with orcale19c - oracle

I am facing this issue in oracle19c.
I have added the following to sqlnet.ora
SQLNET.ALLOWED_LOGON_VERSION_CLIENT = 8
SQLNET.ALLOWED_LOGON_VERSION_SERVER = 8
as well as
SQLNET.AUTHENTICATION_SERVICES = (NONE)
But I am getting:
ORA-01017: invalid username/password: logon denied
I read all over stackoverflow to re-create the password.
I have even tried creating password file as well as changing the password of the user by alter command.
Can any one help me out with the exact steps to re-create password.

You can create a password file using orapwd utility.
Users are added to the password file when they are granted the SYSDBA, SYSOPER, SYSASM, SYSKM, SYSDG or SYSBACKUP privilege.
By default, SYS is the only user that has SYSDBA and SYSOPER privileges. Creating a password file via orapwd enables the remote users to connect with admin privileges.
The basic command to create the password file is
orapwd file=<Password file name> entries=<nnumber of entries allowed> force=<y/n>
There should be no space around =.
Here, You should use force=y to permits overwriting an existing password file.
Cheers!!

Related

Trouble connecting to Oracle database with sqlplus and OS authentication

I am a read-only user to an oracle database, and the DBA gave me two accounts, one with a specific user name and password, and another with OS authentication. The OS authentication is supposed to let me connect by authenticating with my active directory user account that I use to login to my laptop, where I am then running sqlplus.
I can connect and start querying just fine with this command, which shows it is picking up my tnsnames file:
sqlplus username/password#database
However, the version to connect with OS authentication doesn't work:
sqlplus /#database
ERROR: ORA-01017: invalid username/password; logon denied
Am I doing something obviously wrong? I checked in powershell that my user and domain name are the user and domain name that was set up for OS authentication for this database.
I did another test, this time using powershell to do the connection and again with my AD login that should work:
Add-Type -Path "C:\Windows\Microsoft.NET\Oracle.ManagedDataAccess\Oracle.ManagedDataAccess.dll"
#This connection string works for the normal authenticated account
$connectionString = "User Id=$username;Password=$password;Data Source=$datasource"
#But this one gives me ORA-01017 invalid username/password
$connectionString = "User Id=/;Data Source=$datasource"
$connection = New-Object Oracle.ManagedDataAccess.Client.OracleConnection($connectionString)
$connection.open()
I also made sure that SQLNET.AUTHENTICATION_SERVICES= (NTS) is in the sqlnet.ora file
Any thoughts?
When you connect from putty or shell you need to login to the sever first using OS authentication. Then you can use sqlplus authentication to connect sqlplus.

Not able to login by SSO in oracle database when i set TNS_ADMIN parameter

I have my single sign on activated on oracle database D1 and other oracle database D2 which has password login method. I don't want to use oracle home Tnsnames.ora file. I created my own tnsnames.ora and added the both the databases.
I set TNS_ADMIN as path under which I give path of location where I keep my tnsnames file.
I try to do sqlplus /#db1 in command prompt then it throws an error saying "invalid username /password"
But when I use sqlplus /#db1 before tsetting TNS_ADMIN parameter, it takes my local tns file (I guess) and login properly.
Now after setting TNS_ADMIN, if I try sqlplus user/pass#DB2 this works properly as DB2 is accessed using password and SSO isn't activated on this server.
Issue is SSO login in SQLplus doesn't work when I set my TNS_ADMIN parameter, tns entries are correct as I use the same db1 which was before activating SSO.
Do I need to add some parameter in sqlnet.ora located at my tnsnsames file to activate my SSO or any special setting DBA do to activate SSO on user and tns so that I can also do the same to use my tnsnames.ora file.
Scenario
cmd > sqlplus /#db1 --Logs successfully
cmd> set TNS_ADMIN=path/tns (my tnsnames.ora file location)
cmd > sqlplus /#db1 --Logs successfully --Fails to login
cmd > sqlplus user/pass#DB2 --Logs successfully
Note that my tnsnames.ora is not changed and is kept original with connection use for db1 when it was password login.
We use Kerberos for this SSO login for oracle sqlnet file in oracle home path, we have set some parameters related to Kerberos such as Kerberos_CC_NAME, Kerberos_CONF, Kerberos_CONF_MIT parameters. I used the same in my sqlnet file but it didnt works.
You have to specify location of your wallet in sqlnet.ora file, see Profile Parameters (sqlnet.ora)
In case of problems edit your sqlnet.ora file and add these lines
TNSPING.TRACE_DIRECTORY = path (location where you like to get trace file)
TNSPING.TRACE_LEVEL = user
The trace file should provide more information what is going wrong.

How to reset username and password for oracle

I am using
Run SQL Command Line
to connect with database, previously I am able to connect with username 'system' and password 'root' but when I tried to connect using SQL>connect system/root
it is showing error
ERROR:
ORA-01017: invalid username/password; logon denied
All services are running, after long time I am trying to connect may be I forgot my credentials can anyone help me how to change or reset both username and password I am on windows platform,
I too reset my password few days back.
You can reset your password by this
ALTER USER username IDENTIFIED BY password
Connect to db first
SQL> conn /as sysdba
More information Docs

ORA-12638 Credential retrieval failed and ORA-01031: insufficient privileges

in sqlnet.ora file:
when i have SQLNET.AUTHENTICATION_SERVICES= (NTS)
i can't connect by PL/SQL developer arises "ORA-12638 Credential retrieval failed"
,but can connect by command line
when i have SQLNET.AUTHENTICATION_SERVICES= (NONE)
i can't connect
>sqlplus / as sysdba
arises "ORA-01031: insufficient privileges"
,but can connect by PL/SQL developer and command line when i supply username and password
I was facing the exact same issue.
When I made the change to
SQLNET.AUTHENTICATION_SERVICES= (NONE) to resolve the ORA-12638 Credential retrieval failed.
I was then unable to connect with the sysdba privilege.
ORA-01031: insufficient privileges when sqlplus / as sysdba
The Solution:
I was able to find out, I could still connect as sysdba with the following command:
From within sqlplus:
connect sys as sysdba
From command line:
sqlplus sys as sysdba
In both cases, you will be prompted for your password. The password will be the same as your password that you setup for the SYSTEM user during the windows Oracle install.
Now you are connected with the sysdba rights you were trying to get with sqlplus / as sysdba.
The server administrator may not have setup NTS authentication on the database. You can't simply ask for your credentials to be authenticated by NTS in your client SQLNET.ORA file without agreement on the server side.

How to reset/change expired password for DB2 Content Manager 8.4.1

I had installed IBM DB2 Content Manager 8.4.1 months ago and now I wanted to access it to continue some more work.
But when I try to log in using System Administration Client, it tells me the password is expired. The error is:
DGL0394A: Error in ::DriverManager.getConnection;[jcc][t4][2012][11248][3.50.152]
Connection authorization failure occurred. Reason: Password expired.
ERRORCODE=-4214,SQLSTATE=28000 (STATE) : ;
[SERVER = icmnsldb, USERID = icmadmin, SQL RC = -4214, SQL STATE = 28000]
I've tried looking thru the config files, using the java update command line.. and I can't find a way to change or reset the password. I can't use System Administration Client to change the passwords, since it won't log me in to begin with. Any other method I can use to reset/change the password for a DB2 CM user?
DB2 uses the operating system to authenticate users, so you need to use the OS tools to reset the icmadmin user's password. Your post is tagged as Windows, so look for the icmadmin user in either the local machine or in the domain if your server belongs to a domain.
Just use the Client for Windows on a desktop machine and not the eClient to login. It will directly notify about a expired password and you can set the new password immediately.
I faced the same issue. I logged in as root and chaged the password for db2 user by passwd . and changed in the WAS console. It worked.
In Windows, click on start > Control Panel > User Accounts > User Accounts > Manage User Accounts.
Here, select the DB2 username and click on Reset Password.
If you are on Docker, you need to perform a docker exec into the DB2 container (Linux) and then change the password for the local user that you are trying to log in to DB2 with. In my case, the name of the user was "myuser". I changed the password by executing
passwd myuser
Note that you are root by default when you exec into the container. Else use
docker exec -u root <containerName> /bin/sh

Resources