You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle 19c中ORA-01017登录拒绝问题求助

ORA-01017: 用户名/密码无效;登录被拒绝 问题排查

问题场景

在Oracle 19c中执行以下操作后,无法登录用户:

  1. 通过sqlplus / as sysdba登录数据库
  2. 创建用户:
create user "c##keyan" identified by "keyan123";
  1. 授予权限:
grant connect to "c##keyan";
grant dba to "c##keyan";
grant resource to "c##keyan";
grant create session to "c##keyan";
  1. listener.ora配置:
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = ORCL)
      (ORACLE_HOME = H:\WINDOWS.X64_193000_db_home)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (SID_NAME = ORCL)
      (ORACLE_HOME =  H:\WINDOWS.X64_193000_db_home)
    )
  )
  1. tnsnames.ora配置:
ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

执行sqlplus c##keyan/keyan123@//localhost:1521/orcl时触发ORA-01017: invalid username/password; logon denied错误。

核心原因

创建用户时使用双引号包裹了用户名"c##keyan"和密码"keyan123",Oracle会将其视为区分大小写的标识符。而登录时直接输入c##keyan/keyan123,Oracle会自动将其转换为大写C##KEYAN/KEYAN123,与数据库中存储的大小写敏感的用户名/密码不匹配,导致登录失败。

解决方法

方法1:登录时使用双引号包裹标识符

执行以下命令登录,确保用户名和密码的大小写与创建时一致:

sqlplus "c##keyan"/"keyan123"@//localhost:1521/orcl

方法2:重新创建不区分大小写的用户

如果不需要大小写敏感的用户名/密码,创建时去掉双引号(Oracle默认会将标识符转换为大写存储):

-- 先删除原用户(如果需要)
drop user "c##keyan" cascade;
-- 创建不区分大小写的用户
create user c##keyan identified by keyan123;
-- 重新授予权限
grant connect, dba, resource, create session to c##keyan;

此时登录时输入c##keyan/keyan123或C##KEYAN/KEYAN123均可正常登录。

额外验证步骤

  1. 检查远程登录密码文件配置:
    show parameter remote_login_passwordfile;
    
    确保参数值为EXCLUSIVE或SHARED,若不是则修改后重启数据库:
    alter system set remote_login_passwordfile=EXCLUSIVE scope=spfile;
    shutdown immediate;
    startup;
    
  2. 确认监听器状态正常:
    执行lsnrctl status,检查ORCL服务是否已成功注册。

内容的提问来源于stack exchange,提问作者Keyan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 16:07:22