oracle 12c 创建PDB用户即Local User (PDB与CDB)
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)相关推荐
- 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创建公共用户查询DBA_PBS或V$PDBS视图结果为空处理方法
解决方法 SQL> create user c##test identified by test default tablespace users container=all;User crea ...
- Oracle 12c 创建新用户报错 - ORA-65096
CREATE user "admin" identified by "admin"; 第 1 行出现错误: ORA-65096: 公用用户名或角色名无效 在用户 ...
- Oracle 12C 创建用户失败 - ORA-65096 invalid common user or role name
问题: 在Oracle 12c 环境下, 使用命令行或是SQL Developer 创建用户失败, 错误信息报: ORA-65096: 公用用户名或角色名无效 65096. 00000 - " ...
- oracle怎样创建scott用户,oracle 手工创建Scott用户
oracle 手工创建Scott用户 1.登录数据库 sqlplus / as sysdba 2.创建scott用户 create user scott identified by tiger; 3. ...
- oracle数据库创建新用户
最近一直在用oracle数据库.有一次在用oracle数据库创建新用户,导入dmp文件时,只把表结构导入成功,并没有数据.研究一番之后,发现是创建用户没有创建好,特此记录以下. 步骤:
- Oracle 12c创建表空间、用户
目录 一.前言 二.创建表空间 三.创建用户 四.删除表空间.用户 五.CDB与PDB相关文章 一.前言 Oracle 12c 中新增加了可插入数据库的概念,即PDB(Pluggable Databa ...
最新文章
- canvas-js贝塞尔曲线代码在线生成工具
- java提交数据到另一个页面_JS实现把一个页面层数据传递到另一个页面的两种方式...
- 【BZOJ1572】【usaco 2009 open】工作安排job
- 3 vue 线条箭头_教程|PPT绘制箭头最全攻略,收藏一下!
- https 单向认证和双向认证配置
- android沉浸状态栏工具,Android 状态栏工具——一行代码实现状态栏...
- 用ESP8266获取网页信息+获取b站粉丝数案例
- linux firefox flashplayer 升级,在deepin中更新火狐浏览器firefox和firefox-flashplayer的方法...
- 怎么制作鸿蒙系统启动盘,dos系统启动盘怎样做
- 地图刷新 android,android – 如何刷新谷歌地图.
- Goby - 新一代安全工具
- MarkdownPad2行内公式如何用`$$`替代`\\(\\)`---MathJax风格化配置
- win10-gvim安装vim-airline后状态栏乱码,而且箭头显示不出来
- Android 关于佳博和汉印蓝牙热敏打印机开发
- 关于区块链概念的理解
- 【转】数学专业参考书整理推荐V3.0版
- 小区隔音墙生产厂家@初心不改,慢煮岁月
- Android之延时操作方法
- 关键词挖掘在网站SEO中的重要性
- DataTable使用详解
热门文章
- 2041. 干草堆(前缀和差分)
- 7-1 ATM机类结构设计(一) (100 分)
- paginatorhelper ajax,Bootstrap Paginator+PageHelper实现分页效果_蓝瞳_前端开发者
- Git -- 如何删除本地仓库
- 鸿蒙系统9月11号上市吗,9月11日鸿蒙系统2.0要搭载华为全家桶来了,你期待吗?...
- linux清空动态文件内容,linux 动态清空 nohup 清空后,发现文件大小不变
- linux sh-3.2 怎么开机,linux 开机执行脚本文件
- Python爬虫入门教程 27-100 微医挂号网专家团队数据抓取pyspider
- win7 蓝屏信息获取和处理
- SQLite剖析之异步IO模式、共享缓存模式和解锁通知