Oracle 19c新建非SYSDBA用户登录报ORA-01017错误求助
ORA-01017 登录错误的排查与解决
核心排查与解决步骤
1. 操作系统认证优先级干扰
Oracle 19c中,若PDB的LOCAL_OS_AUTHENTICATION参数设为TRUE,会优先启用操作系统用户认证,覆盖普通密码认证逻辑,导致仅SYSDBA角色(依赖密码文件或操作系统DBA组认证)能登录,持CONNECT权限的普通用户无法通过密码验证。
操作步骤:
- 以SYSDBA身份切换到目标PDB:
CONNECT / AS SYSDBA; ALTER SESSION SET CONTAINER=orclpdb;
- 查询并修改参数:
SHOW PARAMETER LOCAL_OS_AUTHENTICATION; -- 若结果为TRUE,执行修改 ALTER SYSTEM SET LOCAL_OS_AUTHENTICATION=FALSE SCOPE=BOTH;
- 重启PDB使配置生效:
ALTER PLUGGABLE DATABASE orclpdb CLOSE IMMEDIATE; ALTER PLUGGABLE DATABASE orclpdb OPEN;
2. 用户归属与权限有效性验证
确认用户确实创建在目标PDB中,而非CDB根容器:
SELECT username, con_id FROM dba_users WHERE username='USER1';
若con_id不等于PDB的ID(可通过SELECT con_id, name FROM v$containers;查询),需在PDB中重新创建用户并授予权限:
CREATE USER USER1 IDENTIFIED BY PASSWORD; GRANT CONNECT, RESOURCE TO USER1;
3. 密码大小写敏感性适配
若数据库SEC_CASE_SENSITIVE_LOGON参数为TRUE,需确保登录时密码严格匹配创建时的大写格式。部分客户端工具可能自动转换大小写,可尝试用引号包裹密码登录:
CONNECT USER1/"PASSWORD"@orclpdb;
4. 权限重新授予
重新执行权限授予命令,确保权限正确应用:
GRANT CONNECT TO USER1;
内容的提问来源于stack exchange,提问作者Manuch
相关产品推荐
相关产品推荐

