Oracle 12C 创建用户失败 - ORA-65096 invalid common user or role name
问题:
在Oracle 12c 环境下, 使用命令行或是SQL Developer 创建用户失败, 错误信息报:
ORA-65096: 公用用户名或角色名无效
65096. 00000 - "invalid common user or role name"
发生场景:
这里以创建一个用户名是SB,密码是 oscar , 默认的表空间是SB 为例(SB是自行创建的表空间),
使用以下命令创建:
create user SB identified by oscar default tablespace SB;
出现错误界面如下:
转到SQL Develop开发工具创建, 报相同的错误。
原因及解析:
Oracle 12C 提出了多租户环境(Multitenant Environment)和容器(Container)的概念, 区分了两个层级:
- CDB , Container Database, 数据库容器
- PDB, Pluggable Database, 可插拔数据库
关系如下图:
在数据库中建立的用户对应以上两个层级:
- COMMOM USERS , 普通用户, 一般建立在CDB层, 用户名需要以 C#或C##开头;
- LOCAL USERS , 本地用户, 仅建立在PBD层,建立的时候需要指定容器
从上面的错误 “invalid common user or role name” 来看, COMMOM USERS 需要以 C#或C##开头, 所有这里的用户名不合规范。
那如何查看当前环境的所在的容器呢? 可以通过以下命令查看:
select sys_context ('USERENV', 'CON_NAME') from dual;
这里查看的结果如下:
当前所在的是CDB容器。
解决方法:
解决方法有两种:
- 如果确定需要创建在CDB容器中, 则在用户名前面加C#或C## (最好是加上C##, 部分环境加C#会不行)
- 如果想保持原用户名,可以将用户创建到PDB容器中
创建用户到PDB步骤:
- 查看pdb 容器信息
select con_id,dbid,NAME,OPEN_MODE from v$pdbs;
查询结果如下:
- 打开PDBORCL 数据库
alter pluggable database ORCLPDB open;
注意: 这个命名需要使用它sysdba 执行才有权限
sqlplus / as sysdba
再次使用
select con_id,dbid,NAME,OPEN_MODE from v$pdbs;
命令, 可以发现ORCLPDB 的OPEN_MODEL 从MOUNTED (已挂载)变成 READ WRITE(可以读写)了。
切换当前Session到 ORCLPDB容器
alter session set container=ORCLPDB;
切换后, 可以使用 select sys_context ('USERENV', 'CON_NAME') from dual;
查看是否切换成功。
- 切换成功后再创建用户就可以了。需要注意,该用户对应的表空间也必须在ORCLPDB 中。
一句话总结
Oracle 12c创建用户要么以C##开头, 要么切换到PDB容器创建。
Oracle 12C 创建用户失败 - ORA-65096 invalid common user or role name相关推荐
- oracle 12c 创建PDB用户即Local User (PDB与CDB)
Oracle 12C用户创建与表空间分配 数据库安装完成后,首先用系统用户链接数据库容器(CDB), 在数据库容器(CDB)中创建表空间'imei' SQL>create tablespac ...
- oracle 12c创建可插拔数据库(PDB)与用户详解
前言 由于oracle 12c使用了CDB-PDB架构,类似于docker,在container-db内可以加载多个pluggable-db,因此安装后需要额外配置才能使用. 一.修改listener ...
- mysql 140824,Oracle 12c创建可插拔数据库(PDB)及用户
由于Oracle 12c使用了CDB-PDB架构,类似于docker,在container-db内可以加载多个pluggable-db,因此安装后需要额外配置才能使用. 一.修改listener.or ...
- oracle12c非可插拔数据库,oracle 12c创建可插拔数据库(PDB)与用户详解
前言 由于oracle 12c使用了CDB-PDB架构,类似于docker,在container-db内可以加载多个pluggable-db,因此安装后需要额外配置才能使用. 一.修改listener ...
- 图解Oracle 12c创建数据挖掘(Data Miner)用户dmuser
主要参考文章 http://docs.oracle.com/cd/E11882_01/datamine.112/e16807/quickstart.htm#DMADM206 http://www.or ...
- Oracle 12c创建表空间、用户
目录 一.前言 二.创建表空间 三.创建用户 四.删除表空间.用户 五.CDB与PDB相关文章 一.前言 Oracle 12c 中新增加了可插入数据库的概念,即PDB(Pluggable Databa ...
- Oracle 19c 创建用户、授权实践
数据据库.用户.CDB与PDB之间的关系 基本概念: Multitenant Environment:多租户环境 CDB(Container Database):数据库容器 PD(Pluggable ...
- oracle 12c创建归档,实测创建 Oracle 12C Dataguard
Oracle 12C Dataguard 环境:centOS 6.4 64bit oracle 12C 12.1.0.1.0 - 64bit 主库:10.168.9.52 sid=bbc d ...
- 12C创建用户问题 ORA-65096
SQL*Plus: Release 12.1.0.1.0 Production on 星期日 7月 21 16:07:55 2013 Copyright (c) 1982, 2013, Oracle. ...
最新文章
- Android 5.0及以上实现屏幕截图
- 浅谈数据分析中的“暗物质”
- Shell数值及字符串比较
- linux mongodb 升级,MongoDB2.6简单快速升级到3.0
- 听说你决定当全职自由漏洞猎人了?过来人想跟你聊聊
- hdu 3746 kmp的next数组理解
- 无法更新 TeamViewer 服务属性是什么意思?
- 向量对矩阵列空间的投影_向量(阵列)处理和超标量处理器
- 将solidworks建的机器人模型导入到ros中
- 图灵工业机器人说明书_从2020世界人工智能大会,看工业机器人领域领军企业布局|机器人大讲堂...
- 捡到的苹果手机怎么解id锁_苹果手机软解和硬解的区别
- RFS实例登录126邮箱/利用cookie登陆百度
- 2019_Generative Adversarial Networks for Extreme Learned Image Compression
- uni-app实现生成二维码功能
- android 串口 汉字乱码,Arduino软串口出现乱码
- ODL构建Hello项目
- wep加密方式是什么_什么是WEP(有线等效保密)?
- CPU保护模式 分页表 描述符 段选择子
- php记录上次观看记录,PHP 记录用户访问记录
- mshtml与System.Windows.Forms.HtmlElement
热门文章
- fcc jQuery 练习
- 【校内互测】Sunshine’s string(merge) (状压dp)
- Ubuntu Linux环境下的Android开发环境的配置
- 强制推送代码到远程仓库
- 老鸟对菜鸟的一些建议
- 【报告分享】2022戴森品牌社媒营销分析报告:搭“消费升级”快车,走“升维打击”路线.pdf(附下载链接)...
- Learning Shape Priors for Single-View 3D Completion and Reconstruction
- Facebook AI研究员田渊栋:2021年年终总结
- cydia源_Cydia错误提示解决大全
- qt向服务器传输文字_Qt实现客户端与服务器消息发送