Oracle 19C创建新用户登录报ORA-01017错误如何解决?
ORA-01017报错排查步骤(Oracle 19C PDB环境)
1. 验证登录连接的目标容器是否正确
- 你创建用户的位置是
orclpdb这个PDB,登录时如果没指定PDB服务名,默认会连到CDB根容器,CDB里没有你创建的该用户,自然会触发报错。 - 检查登录命令格式,正确的PDB登录方式必须指定PDB的服务名,示例:
-- 本地SQL Plus直接登录指定PDB sqlplus 用户名/密码@orclpdb -- 先登录CDB再切换容器登录验证 sqlplus / as sysdba alter session set container=orclpdb; conn 用户名/密码 - 先执行
lsnrctl status命令查看监听中是否已经注册了orclpdb的服务名,确认服务处于正常运行状态;如果用TNS连接,确认tnsnames.ora配置文件中已经配置了orclpdb的连接项,指向正确的IP、端口和服务名。
2. 验证用户创建逻辑是否符合PDB规范
- Oracle 12C及以上版本的PDB中创建普通用户不需要加
C##前缀(只有CDB公共用户需要此前缀),确认你创建用户的语句没有写错前缀,正确创建逻辑示例:alter session set container=orclpdb; create user 用户名 identified by 密码 default tablespace 业务表空间名 temporary tablespace temp; grant create session to 用户名; -- 至少要授予会话权限才能登录,全权限授予后也需要确认权限生效 - 执行以下语句验证PDB中确实存在该用户:
注意Oracle用户名默认会自动转大写存储,如果你创建时加了双引号指定小写用户名,登录时也必须带双引号输入用户名才能匹配。alter session set container=orclpdb; select username from dba_users where username='你的用户名大写';
3. 验证密码大小写与参数配置
- 检查
sec_case_sensitive_logon参数是否开启,该参数控制密码大小写敏感:
如果参数值为show parameter sec_case_sensitive_logon;false,密码会自动转大写匹配,如果你设置的密码包含大小写,需要对应调整输入规则。 - 如果之前修改过密码,确认没有遗漏
commit操作,也可以直接重置密码后重试:alter session set container=orclpdb; alter user 用户名 identified by 新密码;
4. 验证PDB运行状态是否正常
- 你之前执行了
startup启动PDB,需要确认PDB处于可读写状态:
如果状态不是show pdbs;READ WRITE,需要重新启动PDB:alter pluggable database orclpdb open;
内容的提问来源于stack exchange,提问作者Pooja
相关产品推荐
相关产品推荐

