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. ...
最新文章
- 前、后端分离权限控制设计和实现思路
- Hadoop学习之MapReduce(五)
- 微信支付开发(2) 微信支付账号体系
- BUUCTF(pwn)护网杯_2018_gettingstart
- (二)Docker中以redis.conf配置文件启动Redis
- python爬取js动态网页_Python 爬取网页中JavaScript动态添加的内容(一)
- 《常用控制电路》学习笔记——数控锁相环调速电路
- LeetCode 413 等差数列划分
- java 蓝桥杯算法提高 身份证号码升级(题解)
- android 动态改变listview的内容
- 如何在Mac 上的“终端”中限制回滚行数?
- 嵌入式Linux开发板移植SSH
- case …when… 与纵表转横表
- Foxmail发送邮件,发送邮件工具类
- 曙光服务器如何重新设置u盘启动_u盘装曙光服务器 曙光服务器进bios设置u盘启动...
- Hive-内置函数:根据身份证规则从身份证号提取年龄和性别
- 数据安全对物联网越来越重要
- SATA OOB CTS测试项解析
- 秒懂SpringBoot之Spring对象生命周期与扩展点浅尝辄止
- 知识图谱学习(一)(笔记整理)
热门文章
- 【清北前紧急补课8】A % B Problem
- Ant 基本语法的使用示列
- php.ini中Magic_Quotes_Gpc开关设置
- 随手小记 才知道[阁楼藏尸|未来闪影]
- WPF引用外部类库中的资源文件提示不能找到的解决方法
- brew update失败提示:/System/Library/Frameworks/Ruby.framework/。。。解决方法
- 绝对不能错过!计算机视觉Polygon Mesh Processing读书笔记——3
- java小球游戏项目实战
- vue滚动条禁止_vue.js中实现禁止浏览器滚动方法
- java读取一个应用程序_Java IO – 在写入其他应用程序时读取一个大文件