windows10版本oracle12c,创建用户并登录时出现的ora-65096,ora-01017错误的一些处理方法

一、创建用户时出现ora-65096

(一)使用cmd命令提示符窗口,输入:sqlplus / as sysdba,进入到sys用户下
(二)创建用户:create user username identified by password;
这时提示:ORA-65096:公用用户名或角色无效。
这是因为当前是在数据库容器CDB下建,而正常创建用户是在PDB下创建。
当然,也可以在CDB下创建,在名称前面加上 C## 就可以了,即:create user C##username identified by password;但是这样创建的用户名称就是‘C##username’,不方便使用。
因此需要切换到PDB下创建用户:
①查看当前环境:select sys_context(‘USERENV’,‘CON_NAME’) from dual(或者:show con_name);
在这里插入图片描述
②查看所以容器:select con_id,dbid,name,open_mode from v$pdbs;
在这里插入图片描述
③切换容器:alter pluggable database PDBORCL open;
④修改当前会话的容器:alter session set container=PDBORCL;
⑤再次查看当前容器:
在这里插入图片描述
⑥创建用户:create user username identified by password;就可以了。
⑦赋予权限:grant connect,resource to username;(这个视情况赋予)

二、刚刚创建的用户在使用命令提示窗口和PLSQL软件登录的时候都报了ora-01017错误。

(一)命令提示窗口:在使用普通用户登录时在后尾加上as sysdba,即 sqlplus username/password as sysdba;
(二)使用plsql软件登录:分别使用normal和sysdba尝试登录是否成功。
如果sysdba可以登录,但是normal报ora-01017错,则可能是以下原因:
①用户名/口令无效从而登录被拒绝,这时需要修改密码:alter user username identified by password;
②用户被锁,解锁:alter user username account unlock;
以上操作都进行后,还是无法使用plsql登录的话,那么就需要检查tnsnames.ora中的SERVICE_NAME是不是自己当前的会话容器。
在这里插入图片描述
将这里修改成自己容器的名字,再次登录就可以了。

最后:关于ora-01017还有一些疑问,就是普通用户在命令提示窗口的时候不加上as sysdba为什么无法登录,但是使用plsql却是可以登录的?
关于plsql使用sysdba可以登录,使用normal不能登录的一些检查方法:就是普通用户使用sysdba登录之后,使用sql语句查看用户的数量(select username from dba_user;),之后使用sys用户登录也查看用户数量,这时可以看出两边数量对不上,也就是两边使用的容器不一样,因此就需要去排查配置了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值