dataiotech Labs
dbaguidedbaguideDBAdataxtoolsdataopsphere
Home/Error Library/oracle-ora-01017-invalid-username-password-logon-denied
Oracle
Oracle 19c - 23aiIdentity & Security
3 min read
ORA-01017: invalid username/password; logon denied

Oracle Login Denied: Case-Sensitive Passwords, Account Lockouts via FAILED_LOGIN_ATTEMPTS & Account Unlock

Diagnosing logon rejections caused by case sensitivity changes or exceeded failed login attempts, inspecting dba_users, and unlocking locked accounts.

Reviewed by:Senior Database Architect & SRE (dataiotech Labs)
Tested Versions: Oracle Database 19c / 21c / 23ai

Operational Verification & Reliability Metadata

Last Technical Review: 2 Kasım 2026
Tested VersionsOracle 19c, 23ai
Required PrivilegesALTER USER and SELECT on dba_users
Risk Assessment
LowLocked service accounts cause immediate application authentication failures
Expected Outputdba_users.account_status resolving to OPEN
Rollback Procedure:ALTER USER username ACCOUNT UNLOCK;
Oracle Docs: Managing User Authentication & Lockouts
First 60 Seconds Emergency Protocol:

The error string is a symptom, not the root cause. Do not restart the server blindly. Run the diagnostic queries below to pinpoint the actual failure mode.

▸Symptom

Clients fail authentication handshake:

plaintext
ORA-01017: invalid username/password; logon denied ORA-28000: the account is locked

▸What You See in Production

Known credentials fail. Successive retries lock the database user account.


▸Root Cause Matrix

ProbabilityRoot CauseDescription
%50Case-Sensitive PasswordsCasing mismatches under SEC_CASE_SENSITIVE_LOGON.
%35Account Locked via ThresholdRepeated failed attempts trigger FAILED_LOGIN_ATTEMPTS.
%15Password ExpiryExpired credentials due to PASSWORD_LIFE_TIME.

▸EMERGENCY RUNBOOK (0-5 min)

sql
-- 1. Check user status in dba_users SELECT username, account_status FROM dba_users WHERE username = 'APP_USER'; -- 2. Unlock and reset credentials ALTER USER app_user ACCOUNT UNLOCK; ALTER USER app_user IDENTIFIED BY "GucluSifre2026!";

▸PERMANENT BLUEPRINT

  1. 1Dedicated Service Profiles: Allocate unexpiring profiles to backend service accounts:
sql
CREATE PROFILE app_service_profile LIMIT PASSWORD_LIFE_TIME UNLIMITED;

▸Verification

sql
SELECT username, account_status FROM dba_users WHERE username = 'APP_USER';

Other Database Error Triage Playbooks

Other battle-tested diagnostic guides for high-severity database errors.

All Errors (82)