oracle12C 创建用户学习
Oracle 12C中,账号分为两种,一种是公用账号,一种是本地账号(亦可理解为私有账号)。共有账号是指在CDB下创建,并在全部PDB中生效的账号,另一种是在PDB中创建的账号。
针对这两种账号的测试如下:
1.1 在PDB中创建测试账号
SQL> alter session set container=pdb01;
SQL> select username from dba_users where username like 'GUI%';
SQL> CREATE USER TEST IDENTIFIED BY test;
SQL> grant dba to test;
SQL> show con_name
CON_NAME
------------------------------
PDB01
SQL> conn /as sysdba
Connected.
SQL> create user test identified by test;
create user test identified by test
*
ERROR at line 1:
ORA-65096: invalid common user or role name
SQL> show con_name
CON_NAME
------------------------------
CDB$ROOT
结论:
如果在PDB中已经存在一个用户或者角色,则在CDB中不能创建相同的账号或者角色名。
1.2 在CDB中创建测试账号
SQL> show con_name
CON_NAME
------------------------------
CDB$ROOT
SQL> create user C##GUIJIAN IDENTIFIED BY guijian; ------注意CDB中创建用户一定要带上c##
SQL> create user c#gui identified by gui;
create user c#gui identified by gui
*
ERROR at line 1:
ORA-65096: invalid common user or role name
SQL> select username from dba_users where username like '%GUI%';
USERNAME
--------------------------------------------------------------------------------
C##GUIJIAN
SQL> ALTER SESSION SET CONTAINER=PDB01;
SQL> select username from dba_users where username like '%GUI%';
USERNAME
--------------------------------------------------------------------------------
C##GUIJIAN
SQL> create user guijian identified by guijian;
同样在CDB中创建账号后不能在PDB中出现同名的账号,因CDB中的账号对所有的PDB都是有效的。
SQL> create user c##guijian identified by guijian;
create user c##guijian identified by guijian
*
ERROR at line 1:
ORA-65094: invalid local user or role name
SQL> alter session set container=pdba;
Session altered.
SQL> show user
USER is "SYS"
SQL> alter user sys identified by sys;
alter user sys identified by sys
*
ERROR at line 1:
ORA-65066: The specified changes must apply to all containers
SQL> show con_name
CON_NAME
------------------------------
PDBA
SQL> conn /as sysdba
SQL> show con_name
CON_NAME
------------------------------
CDB$ROOT
SQL> alter user sys identified by sys;
1.3 CDB下创建账号的权限问题
SQL> conn / as sysdba
SQL> grant connect,create session to c##cdb;
SQL> conn c##cdb/cdb@pdba
ERROR:
ORA-01045: user C##CDB lacks CREATE SESSION privilege; logon denied
Warning: You are no longer connected to ORACLE.
SQL> a
SP2-0004: Nothing to append.
SQL> conn / as sysdba
Connected.
SQL> alter session set container=pdba;
SQL> grant resource,connect to c##cdb;
SQL> conn /as sysdba
SQL> conn c##cdb/cdb@pdba
SQL> conn / as sysdba
SQL> create user guijian identified by guijian container=current;
create user guijian identified by guijian container=current
*
ERROR at line 1:
ORA-65049: creation of local user or role is not allowed in CDB$ROOT
SQL> create user c##guijian identified by guijian container=current;
create user c##guijian identified by guijian container=current
*
ERROR at line 1:
ORA-65094: invalid local user or role name
SQL> show con_name
CON_NAME
------------------------------
CDB$ROOT
SQL> create user c##guijian identified by guijian container=all;
SQL> create user c##guijian01 identified by guijian;
SQL> conn /as sysdba
SQL> show con_name
CON_NAME
------------------------------
CDB$ROOT
SQL> grant dba to c##guijian01;
SQL> conn c##guijian01/guijian@pdba
ERROR:
ORA-01045: user C##GUIJIAN01 lacks CREATE SESSION privilege; logon denied
Warning: You are no longer connected to ORACLE.
SQL> conn /as sysdba
SQL> show con_name
CON_NAME
------------------------------
CDB$ROOT
SQL> grant dba to c##guijian01 container=all;
SQL> conn c##guijian01/guijian@pdba
1.4 对象管理测试
对象管理测试中,我们简单测试在共有账号的数据对象的CDB和PDB下的不同。
1、在CDB下创建对象,在PDB下查看:
SQL> conn c##cdb/cdb
SQL> show con_name
CON_NAME
------------------------------
CDB$ROOT
SQL> create table cdb as select * from dba_users;
SQL> commit;
可以看到,在CDB下的共有账号创建的对象在PDB下是看不到的。
2、在PDB下的共有账号创建对象,在CDB下查看:
SQL> show con_name
CON_NAME
------------------------------
PDBA
SQL> show user
USER is "C##CDB"
SQL> select object_name from user_objects;
SQL> create table cdb as select * from dba_users;
可以看出,针对同一个共有账号在PDB下创建的账号在CDB是看不到的,此外我们还注意到一个细节,针对同一个共有账号,在PDB和CDB下创建的共有账号因在CDB和PDB下被赋予了不同的含义,故在CDB下创建的对象和在PDB下创建的对象是可以同名的,反之也成立。
结论:
1、 如果在PDB中已经存在一个用户或者角色,则在CDB中不能创建相同的账号或者角色名。
2、 同样在CDB中创建账号后不能在PDB中出现同名的账号,因CDB中的账号对所有的PDB都是有效的。
3、 在CDB中创建的账号将会在全部的PDB中出现,但是在CDB中的授权,如非特别指定的话,并不能传递到PDB中。
4、 针对同一个共有账号在PDB下创建的账号在CDB是看不到的。针对同一个共有账号,在PDB和CDB下创建的共有账号因在CDB和PDB下被赋予了不同的含义,故在 CDB下创建的对象和在PDB下创建的对象是可以同名的,反之也成立。
转载于:https://blog.51cto.com/fengfeng688/1920499
oracle12C 创建用户学习相关推荐
- oracle12c用户名c##_Oracle数据库之oracle12c创建用户提示ORA-65096:公用用户名或角色无效...
本文主要向大家介绍了Oracle数据库之oracle12c创建用户提示ORA-65096:公用用户名或角色无效,通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助. 1.背景 以前一直 ...
- 分享知识-快乐自己:oracle12c创建用户提示ORA-65096:公用用户名或角色无效
今天在oracle12c上创建用户,报错了.如下图: 我很郁闷, 就打开了oracle官方网站找了下, 发现创建用户是有限制的. 2.解决方案 创建用户的时候用户名以c##或者C##开头即可. 错误写 ...
- Oracle12c创建用户不加C##
Oracle12c数据库的创建用户的方式有所改变,因为Oracle 12C引入了CDB与PDB的新特性,具体特性就不多说了,感兴趣可查看官方文档.因此,我们平时所用的创建用户的命令也有所变化,必须得加 ...
- oracle12c创建pdb用户6,ORACLE12C PDB创建默认表空间和用户语句
--创建默认表空间: create tablespace tablesapce_name datafile size 500M autoextend on next 100M; --创建用户空间: ...
- oracle 创建角色 权限设置,[学习笔记] Oracle创建用户、分配权限、设置角色,
[学习笔记] Oracle创建用户.分配权限.设置角色, 创建用户 create user student --用户名 identified by "123456" --密码 de ...
- 小白学习MySQL - 不同版本创建用户的些许区别
MySQL创建用户有很多种方法,例如常规create user,再通过grant,授予权限,还可直接grant连带创建用户和授权一起做了.最近创建过程中,发现不同版本操作有些区别. MySQL 5.7 ...
- oracle12c创建表空间、创建用户、创建权限
目录 1.基本概念 1.1.关于账号的概念 1.2.关于pdb和cdb的概念 3.创建用户 4.给用户创建权限 5.综合练习(很重要.正在写...) 6.参考资料 1.基本概念 1.1.关于账号的概念 ...
- oracle怎么创建登录用户,Oracle学习第一课(登录oracle和创建用户)
博客10:housen1987 housen1987.iteye.com/blog/1345496 [学习是螺旋上升的过程,由易到难,由少到多,由点到面,每一个步骤,每一个脚印,每一个见闻,每一个错误 ...
- Oracle 11gR2学习之三(创建用户及表空间、修改字符集和Oracle开机启动)
一.创建用户及表空间 1.连接数据库 [root@localhost ~]# su - oracle [oracle@localhost ~]$ sqlplus /nolog #进入sqlplus ...
最新文章
- mysql商品管理系统总结_Mysql管理总结
- 【Android RTMP】RTMPDump 推流过程 ( 独立线程推流 | 创建推流器 | 初始化操作 | 设置推流地址 | 启用写出 | 连接 RTMP 服务器 | 发送 RTMP 数据包 )
- [Tips on Ember 2] 如何尝试 angle-bracket component
- 有了人工智能还不够?腾讯的工具产品想试试社交
- JQuery EasyUI 动态隐藏
- 讲解Linux数据库安装
- flutter 刷脸_GitHub - hqwlkj/wechat_face_payment: 微信刷脸支付、刷脸认证、扫码支持等 Flutter 插件....
- Java架构-高并发的解决实战总结方案
- 2017-10-08 前端日报
- 如何将zlib,gzip和zip相关联?它们有什么共同之处,它们有何不同?
- python画出roc曲线 auc计算逻辑_从scikitlearn(sklearn)的多类数据计算AUC和ROC曲线?...
- Atitit 图像处理Depixelizing Pixel Art像素风格画的矢量化
- spring cloud 搭建问题记录
- 武大计算机考研 932教材,2018武汉大学考研官方指定参考书目
- A780完全攻略总汇[转自cffuzs]
- 云原生GIS技术全解读
- swift实现单例的四种方式
- 树莓派4b常用资料汇总
- 百度地图API——多点路径连线问题
- 关于JackJson接收前端UTC格式化报错SON parse error: Cannot deserialize value of type `java.util.Date` from String
热门文章
- Django中urls参数传递
- git向远程推送代码提示需要token
- oracle 错误码1438,一次ora-01438错误的处理
- 个人生活助手app_“3·15可信赖应用白名单”发布 360旗下多款APP获评甲级认证
- rust怎么建柱子_小报:捷达VS5安全带卡扣向里?敲B柱?怎么掰回来? 第191220期...
- oracle修改seq为order,Oracle 创建和修改sequence
- 自建git服务器 ssh,搭建基于SSH的Git服务器
- 利用可分离卷积UNet进行木薯叶病分类
- 深度迁移学习在花生叶部病害图像识别中的应用
- python绘制子图去掉x轴坐标值_python – 关闭图形的所有子图的轴