Oracle 12C用户创建与表空间分配 

数据库安装完成后,首先用系统用户链接数据库容器(CDB), 在数据库容器(CDB)中创建表空间‘imei’

SQL>create 
tablespace 
iemi 
datafile'E:\Oracle_DB\ 
cdb_iemi.dbf'size 10240m autoextend on next 200m;

表空间已创建。 
接下来在Oracle 12C数据库中创建用户时会报ORA-65096错误。

SQL> create user imei identified by imei default tablespace imei temporary tablespace imei_temp; * 
ERROR at line 1: 
ORA-65096: invalid common user or role name ORA-65096:公用用户名或角色名无效

以前没见过这个错误,通用用户(common user)是什么?之前的版本可是没这概念啊,上网搜索看到了下面的图片,原来和common user对应的还有local user。

这个common user 和local user是和oracle 12c的新特性pluggable database(PDB)有关。在PDB中创建的用户就是local user。从上图可以看出,common user必须以大写或小写的c##开头,尝试建立以c##开头的common user。

SQL> create user c##imei identified by imei default tablespace imei temporary tablespace imei_temp;; User created. 
SQL> grant dba to c##imei; Grant succeeded. 
每个PDB都是独立的单元,有自己的用户(local user)、表空间、数据文件,每个local user只能访问自己的PDB,而common user只要权限足够,可以访问任意PDB。

Oracle 12C引入了CDB与PDB的新特性,在ORACLE 12C引入的多租用户环境(Multitenant Environment)中,允许一个数据库容器(CDB)承载多个可插拔数据库(PDB)。CDB全称为Container Database,中文翻译为数据库容器,PDB全称为Pluggable Database,即可插拔数据库。在ORACLE 12C之前,实例与数据库是一对一或多对一关系(RAC):即一个实例只能与一个数据库相关联,数据库可以被多个实例所加载。而实例与数据库不可能是一对多的关系。当进入ORACLE 12C后,实例与数据库可以是一对多的关系。下面是官方文档关于CDB与PDB的关系图。

基本概念:

Multitenant Environment:多租户环境

CDB(Container Database):数据库容器

PD(Pluggable Database):可插拔数据库

CDB组件(Components of a CDB)

一个CDB数据库容器包含了下面一些组件:

ROOT组件 
ROOT又叫CDB$ROOT, 存储着ORACLE提供的元数据和Common User,元数据的一个例子是ORACLE提供的PL/SQL包的源代码,Common User 是指在每个容器中都存在的用户。

--------------------------------------------------------------------------------

oracle 12c 创建PDB用户即Local User

Oracle数据库的结构是一个数据库实例下有许多用户,每一个用户有自己的表空间,即每一个用户相当于MySQL中的一个数据库。

不久前下了oracle 12c的数据库,安装之后建user时才知道oracle12c 有一个很大的变动就是引入了pdb可插入数据库,而且在cdb中只能创建c##或者C##开头的用户,只有在pdb数据库中才能创建我们习惯性命名的用户,oracle称之为Local User,前者称之为Common User,于是乎查询相关的资料,得到以下解决方法:

1:进入PDB数据库

在12C安装时,会提示你是否安装可插接式数据库,我是安装了设为PDBORCL;如果你没有安装的话可以用以下语句创建一个可插入数据库

 create pluggable database pdborcl admin user pdbadmin identified by Learnin
g roles=(connect)
file_name_convert=
('E:\Databases\oracle\oradata\oraclekd\pdbseed',
'E:\Databases\oracle\oradata\oraclekd\pdborcl');

 

其中pdborcl是我创建的可插接式数据库,pdbadmin是创建的用户,Learning是密码。

file_name_convert换成相应目录就OK了

创建完成之后

alter session set container=pdborcl;
alter pluggable database pdborcl open;
grant dba to pdbadmin;

接下来关键来了,在oracle_home\product\12.1.0\dbhome_1\NETWORK\ADMIN目录下找到tnsnames.ora,用记事本打开,在
ORACLEKD =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = oraclekd)
    )
  )

之下添加

PDBORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = PDBORCL)
    )
  )
PDBORCL就是你创建的可插入数据库,保存好之后重启oracle服务(貌似只重启监听程序就OK),打开sql*plus
用户名是PDBADMIN@PDBORCL 密码是Learning
OK,你现在已经创建了一个PDB用户了。现在你可以登录这个用户了
接下来是用sql developer创建连接的时候了,显然有sql developer这么强大的工具,怎么能不用呢
创建连接时连接名随意取,用户名就是PDBADMIN, 密码是Learning,选服务名称,填入PDBORCL
至此可以用sql developer操作PDB数据库了

<pre code_snippet_id="123962" snippet_file_name="blog_20131223_2_1785783"></pre>
<pre></pre>

oracle 12c 创建PDB用户即Local User (PDB与CDB)相关推荐

  1. oracle 12c创建可插拔数据库(PDB)与用户详解

    前言 由于oracle 12c使用了CDB-PDB架构,类似于docker,在container-db内可以加载多个pluggable-db,因此安装后需要额外配置才能使用. 一.修改listener ...

  2. mysql 140824,Oracle 12c创建可插拔数据库(PDB)及用户

    由于Oracle 12c使用了CDB-PDB架构,类似于docker,在container-db内可以加载多个pluggable-db,因此安装后需要额外配置才能使用. 一.修改listener.or ...

  3. oracle12c非可插拔数据库,oracle 12c创建可插拔数据库(PDB)与用户详解

    前言 由于oracle 12c使用了CDB-PDB架构,类似于docker,在container-db内可以加载多个pluggable-db,因此安装后需要额外配置才能使用. 一.修改listener ...

  4. Oracle 12c创建公共用户查询DBA_PBS或V$PDBS视图结果为空处理方法

    解决方法 SQL> create user c##test identified by test default tablespace users container=all;User crea ...

  5. Oracle 12c 创建新用户报错 - ORA-65096

    CREATE user "admin" identified by "admin"; 第 1 行出现错误: ORA-65096: 公用用户名或角色名无效 在用户 ...

  6. Oracle 12C 创建用户失败 - ORA-65096 invalid common user or role name

    问题: 在Oracle 12c 环境下, 使用命令行或是SQL Developer 创建用户失败, 错误信息报: ORA-65096: 公用用户名或角色名无效 65096. 00000 - " ...

  7. oracle怎样创建scott用户,oracle 手工创建Scott用户

    oracle 手工创建Scott用户 1.登录数据库 sqlplus / as sysdba 2.创建scott用户 create user scott identified by tiger; 3. ...

  8. oracle数据库创建新用户

    最近一直在用oracle数据库.有一次在用oracle数据库创建新用户,导入dmp文件时,只把表结构导入成功,并没有数据.研究一番之后,发现是创建用户没有创建好,特此记录以下. 步骤:

  9. Oracle 12c创建表空间、用户

    目录 一.前言 二.创建表空间 三.创建用户 四.删除表空间.用户 五.CDB与PDB相关文章 一.前言 Oracle 12c 中新增加了可插入数据库的概念,即PDB(Pluggable Databa ...

最新文章

  1. canvas-js贝塞尔曲线代码在线生成工具
  2. java提交数据到另一个页面_JS实现把一个页面层数据传递到另一个页面的两种方式...
  3. 【BZOJ1572】【usaco 2009 open】工作安排job
  4. 3 vue 线条箭头_教程|PPT绘制箭头最全攻略,收藏一下!
  5. https 单向认证和双向认证配置
  6. android沉浸状态栏工具,Android 状态栏工具——一行代码实现状态栏...
  7. 用ESP8266获取网页信息+获取b站粉丝数案例
  8. linux firefox flashplayer 升级,在deepin中更新火狐浏览器firefox和firefox-flashplayer的方法...
  9. 怎么制作鸿蒙系统启动盘,dos系统启动盘怎样做
  10. 地图刷新 android,android – 如何刷新谷歌地图.
  11. Goby - 新一代安全工具
  12. MarkdownPad2行内公式如何用`$$`替代`\\(\\)`---MathJax风格化配置
  13. win10-gvim安装vim-airline后状态栏乱码,而且箭头显示不出来
  14. Android 关于佳博和汉印蓝牙热敏打印机开发
  15. 关于区块链概念的理解
  16. 【转】数学专业参考书整理推荐V3.0版
  17. 小区隔音墙生产厂家@初心不改,慢煮岁月
  18. Android之延时操作方法
  19. 关键词挖掘在网站SEO中的重要性
  20. DataTable使用详解

热门文章

  1. 2041. 干草堆(前缀和差分)
  2. 7-1 ATM机类结构设计(一) (100 分)
  3. paginatorhelper ajax,Bootstrap Paginator+PageHelper实现分页效果_蓝瞳_前端开发者
  4. Git -- 如何删除本地仓库
  5. 鸿蒙系统9月11号上市吗,9月11日鸿蒙系统2.0要搭载华为全家桶来了,你期待吗?...
  6. linux清空动态文件内容,linux 动态清空 nohup 清空后,发现文件大小不变
  7. linux sh-3.2 怎么开机,linux 开机执行脚本文件
  8. Python爬虫入门教程 27-100 微医挂号网专家团队数据抓取pyspider
  9. win7 蓝屏信息获取和处理
  10. SQLite剖析之异步IO模式、共享缓存模式和解锁通知