oracle19c创建pdb,解决ORA-65096: invalid common user or role name

一、问题分析:       

        oracle19c创建用户时,报错了:ORA-65096: invalid common user or role name,(公用用户名或角色名无效).

        错误原因:Oracle 12C以及更高版本中引入了CDB与PDB的新特性,在ORACLE 12C数据库引入的多租用户环境(Multitenant Environment)中,允许一个数据库容器(CDB)承载多个可插拔数据库(PDB)。CDB全称为Container Database,中文翻译为数据库容器,PDB全称为Pluggable Database,即可插拔数据库。用户想在PDBORCL中创建新用户,却未设置会话container到PDB,而在CDB中创建公有用户因无法通过名称或角色验证出错。

二、解决方法:

        方法1、创建用户的时候用户名以c##或者C##开头(不建议)

        命令:create user c##newuser identified by newuser;(此时创建的用户名称在表user$中为: ##newuser),不是我们需要的newuser

        方法2、切换到pdb数据库

        (0)进入sqlplus

sqlplus / as sysdba;

         如果进入失败,可以检查下自己的ORACLE_SID和ORACLE_HOME是否设置正确,可以参考我的文章:

linux下离线安装oracle数据库_linux离线安装oracle_林间6的博客-CSDN博客linux下安装oracle,预安装文件,compat-libstdc++-33,oracle-database-preinstall-19c-1.0-1,必安装前置依赖包,rpm文件,一键安装,带有oracle个人安装笔记,按照笔记安装基本可以顺利安装,内附常见问题_linux离线安装oraclehttps://blog.csdn.net/weixin_47315082/article/details/131330882      

        (1)查询pdb库:

show pdbs;

oracle19c创建pdb,解决ORA-65096: invalid common user or role name_第1张图片

        上图可以看到我们的BSOFT19这个pdb处于关闭状态,未开启,而HIP40处于开启状态可以连接;

        (2)开启/关闭pdb:

--打开容器
alter pluggable database pdb名称 open;
--关闭容器
alter pluggable database pdb名称 close;

        (3)切换PDB

alter session set container=pdb名称(指定容器);

        (4)切换之后即可在sqlplus命令行中进行用户添加操作了。

        如果需要创建pdb可以参考:

oracle创建pdb实例,并配置监听_林间6的博客-CSDN博客在oracle使用中,我们可能面临需要自己创建一个pdb实例,比如: (1)来区分不同的项目工程 (2)创建用户时报错ORA-65096: invalid common user or role name,也就是处于cdb状态而不是pdb状态,需要切换到pdb状态,此时没有pdb或者pdb名称与自己需要的不符https://blog.csdn.net/weixin_47315082/article/details/131922971

你可能感兴趣的:(部署,oracle,数据库)