Oracle 21c XE遇ORA-01017无效用户名/密码问题求助
解决Oracle 21c XE ORA-01017 用户名/密码无效问题
Oracle 18c和21c XE的核心认证逻辑差异不大,这个错误大概率不是版本直接导致的,按以下步骤排查:
检查用户名和密码的大小写敏感性
Oracle 12c及以后默认开启密码大小写敏感,若你用小写密码创建用户,或输入时未区分大小写,会触发该错误。可先尝试大写输入密码,或用DBA权限用户(如SYS、SYSTEM)登录后修改用户密码为大小写不敏感:ALTER USER your_username IDENTIFIED BY "your_password" CASE INSENSITIVE;确认用户是否被锁定或过期
用DBA用户登录后执行命令检查用户状态:SELECT username, account_status, lock_date FROM dba_users WHERE username = 'YOUR_USERNAME';若状态为
LOCKED或EXPIRED,执行以下命令解锁并重置密码:ALTER USER your_username ACCOUNT UNLOCK; ALTER USER your_username IDENTIFIED BY new_password;检查连接字符串格式
Oracle 21c XE默认服务名为XE,确保连接字符串正确。SQL*Plus连接的正确格式为:sqlplus username/password@localhost:1521/XE省略服务名可能导致连接到错误实例,引发认证失败。
验证SYSTEM/SYS用户登录状态
若初始安装时设置的SYSTEM或SYS用户也无法登录,说明安装时密码设置存在问题,需重置SYS密码:- 停止Oracle服务(Windows在服务列表中找到OracleServiceXE;Linux执行
systemctl stop oracle-xe-21c) - 启动实例到mount状态并重置密码:
sqlplus /nolog CONNECT / AS SYSDBA; STARTUP MOUNT; ALTER SYSTEM ENABLE RESTRICTED SESSION; ALTER SYSTEM SET SEC_CASE_SENSITIVE_LOGON = FALSE; ALTER USER SYS IDENTIFIED BY new_password; ALTER USER SYSTEM IDENTIFIED BY new_password; ALTER DATABASE OPEN; - 重启Oracle服务。
- 停止Oracle服务(Windows在服务列表中找到OracleServiceXE;Linux执行
排查用户名拼写问题
Oracle用户名默认以大写存储,若创建用户时用小写但未加双引号,实际存储为大写。例如执行CREATE USER test IDENTIFIED BY test;,实际用户名为TEST,登录时输入test会报错,需输入TEST或用双引号括起:"test"。
内容的提问来源于stack exchange,提问作者NewbDataME
相关产品推荐
相关产品推荐

