[原创]Oracle12cR2_创建公用用户

在CDB模式下,公用用户(Common User)和本地用户(Local User)两个概念被引入进来,

公用用户可以在CDB和PDB中同时存在,能够连接ROOT和PDB进行操作;而本地用户则只在特定的PDB中存在,也只能在特定的PDB中执行操作;

在PDB中不能创建公用用户,而在CDB中(CDB$ROOT中)同样不能创建本地用户。

创建公有用户,公有用户名必须是以C##或者c##(大小写C和两个#)开头的用户名,但这前缀是可以更改的,通过 common_user_prefix 参数控制。

默认的前缀名称如下所示,默认CDB中,common_user_prefix 的值是 C##。

SQL> show con_name

CON_NAME

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

CDB$ROOT

SQL> show parameter COMMON_USER_PREFIX

NAME TYPE VALUE

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

common_user_prefix string C##

SQL>

演示创建一个 c##lyn 的用户,之后需要赋予相应的权限,另外需要注意使用grant语句中的container指定容器。

SQL> show user;

USER is "SYS"

SQL> create user c##lyn identified by oracle;

User created.

SQL> show pdbs

CON_ID CON_NAME OPEN MODE RESTRICTED

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

2 PDB$SEED READ ONLY NO

3 PDB1 READ WRITE NO

4 PDB3 READ WRITE NO

5 PDB2 READ ONLY NO

SQL>

SQL> grant connect,resource to c##lyn;

Grant succeeded.

SQL> conn [email protected];

ERROR:

ORA-01045: user C##LYN lacks CREATE SESSION privilege; logon denied

Warning: You are no longer connected to ORACLE.

SQL> conn / as sysdba

Connected.

SQL> grant connect,resource to c##lyn container=all;

Grant succeeded.

SQL> conn [email protected];

Connected.

SQL>

当创建公用用户时,Oracle会向每个PDB中同时创建该用户,如果PDB未打开,则创建工作会以任务的方式延后。

如下所示,pdb2是read only状态,所以创建c##lyn用户时候,对pdb2是没有创建成功的。

SQL> show con_name

CON_NAME

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

CDB$ROOT

SQL> show pdbs;

CON_ID CON_NAME OPEN MODE RESTRICTED

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

2 PDB$SEED READ ONLY NO

3 PDB1 READ WRITE NO

4 PDB3 READ WRITE NO

5 PDB2 READ ONLY NO

SQL>

SQL> conn [email protected];

Connected.

SQL> conn [email protected];

Connected.

SQL> conn [email protected];

ERROR:

ORA-01017: invalid username/password; logon denied

Warning: You are no longer connected to ORACLE.

SQL>

通过重启pdb2,之后可以用c##lyn的公共用户连接了。

SQL> conn / as sysdba

Connected.

SQL>

SQL> alter pluggable database pdb2 close immediate;

Pluggable database altered.

SQL> alter pluggable database pdb2 open;

Pluggable database altered.

SQL>

SQL> conn [email protected];

Connected.

SQL>

cdb/pdb数据文件的路径清晰可见。如果要创建的公有用户指定表空间的话,需要每个容器都事前存在,不然会报错。参考如下实验:

SQL> show con_name

CON_NAME

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

CDB$ROOT

SQL> select file_name from dba_data_files;

FILE_NAME

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

/opt/oracle/oradata/PRODCDB/system01.dbf

/opt/oracle/oradata/PRODCDB/sysaux01.dbf

/opt/oracle/oradata/PRODCDB/undotbs01.dbf

/opt/oracle/oradata/PRODCDB/deftbs01.dbf

SQL> create tablespace users datafile '/opt/oracle/oradata/PRODCDB/user01.dbf' size 100m autoextend on uniform size 1m;

Tablespace created.

SQL> select file_name from dba_data_files;

FILE_NAME

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

/opt/oracle/oradata/PRODCDB/system01.dbf

/opt/oracle/oradata/PRODCDB/sysaux01.dbf

/opt/oracle/oradata/PRODCDB/undotbs01.dbf

/opt/oracle/oradata/PRODCDB/deftbs01.dbf

/opt/oracle/oradata/PRODCDB/user01.dbf

SQL>

SQL> create user c##test01 identified by oracle default tablespace users temporary tablespace temp01;

create user c##test01 identified by oracle default tablespace users temporary tablespace temp01

*

ERROR at line 1:

ORA-00959: tablespace 'TEMP01' does not exist

SQL> create user c##test01 identified by oracle default tablespace users temporary tablespace TEMPTS1;

create user c##test01 identified by oracle default tablespace users temporary tablespace TEMPTS1

*

ERROR at line 1:

ORA-65048: error encountered when processing the current DDL statement in pluggable database PDB1

ORA-00959: tablespace 'USERS' does not exist

SQL>

SQL> create user c##user01 identified by oracle default tablespace deftbs temporary tablespace TEMPTS1;

User created.

SQL>不仅临时表空间名要注意,指定的表空间需要各个容器都需要存在,不然报: ORA-65048 的错误。

测试链接:

SQL> grant connect,resource to c##user01;

Grant succeeded.

SQL>

上面赋予语句只能练剑PRODCDB,而不能链接pdb,所以赋予公有用户时候,需要注意container参数。参考如下:(container=all 赋予全部pdb相同权限)

[[email protected] ~]$ sqlplus [email protected]:1521/prodcdb;

SQL*Plus: Release 12.2.0.1.0 Production on Fri Sep 29 17:56:51 2017

Copyright (c) 1982, 2016, Oracle. All rights reserved.

Connected to:

Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

SQL> conn [email protected];

ERROR:

ORA-01045: user C##USER01 lacks CREATE SESSION privilege; logon denied

Warning: You are no longer connected to ORACLE.

SQL> conn / as sysdba

Connected.

SQL> grant connect,resource to c##user01 container=all;

Grant succeeded.

SQL> conn [email protected];

Connected.

SQL>

~~~ LinHong 2017/09/15 ~~~~

oracle 创建用户 公用,[原创]Oracle12cR2_创建公用用户相关推荐

  1. Oracle sql plus创建用户时出现:ORA-65096: 公用用户名或角色名无效

    Oracle sql plus创建用户时出现:ORA-65096: 公用用户名或角色名无效 执行 alter session set "_ORACLE_SCRIPT"=true; ...

  2. Oracle 用户表空间的创建和授权

    2019独角兽企业重金招聘Python工程师标准>>> 执行以下SQL语句查找存放表空间的数据文件的路径 SELECT ddf.file_name FROM Dba_Data_Fil ...

  3. oracle创建登录用户有限制吗,Oracle创建用户限制文件,表空间用户授权等。

    1.用户限制文件(限制用户的使用)1 2 3 4create profile iyeeku_profile limit failed_login_attempts 5 -- 指定锁定用户的登录失败的次 ...

  4. oracle 视图 其他用户,oracle创建视图中涉及到另外一个用户的表权限不足问题

    oracle创建视图中涉及到另外一个用户的表权限不足问题 在oracle中存储过程或者视图等对象创建时,如果涉及到另外一个用户的表,即使你已经grant dba了,也不行,必须显式地赋予查询权限.否则 ...

  5. 【Oracle】使用SQL*Plus命令创建独立用户环境

    实验二 一.实验目的 1. 掌握oracle中切换登陆用户: 2. 掌握oracle中个类查询语句. 二.实验任务 1. 使用系统管理员修改SCOTT模式的信息: 2.切换SCOTT用户登陆: 3. ...

  6. 【oracle】创建用户(指定表空间)、删除用户

    创建用户(指定表空间).删除用户 --创建用户(表空间已存在) create user test identified by 123 account unlock default tablespace ...

  7. Oracle 同义词(synonyms)的作用及创建

    什么是同义词 Oracle 数据库中提供了同义词管理的功能,同义词是数据库方案对象的一个别名,经常用于简化对象访问和提高对象访问的安全性.在使用同义词时,Oracle 数据库将它翻译成对应方案对象的名 ...

  8. linux给oracle导入sql语句,Linux数据库创建与数据导入

    之前没搞过linux,这次客户的系统装的linux,项目发布环境及数据库已经安装好了.由于要急着上线,所以就边摸索边处理了.简单记 之前没搞过linux,这次客户的系统装的linux,项目发布环境及数 ...

  9. Oracle资源管理器(二)-- 创建和使用数据库资源计划

    (参考 http://blog.csdn.net/mrluoe/article/details/7969436 -- 整理并实践通过) 第1步,创建3个用户 SQL> create user s ...

最新文章

  1. mysql dml 日志_Oracle DML错误日志笔记
  2. ubuntu16.04+anaconda3+python3.6安装OpenCV3
  3. 百度校招历年经典面试题汇总:Java开发岗
  4. 卸掉IE8,降级使用
  5. keil5函数 默认返回值_Excel等级判定,除了If函数外,还有5个易学易用易懂的技巧需要掌握!...
  6. MySQL数据库、数据表和字段字符集查询、修改和配置
  7. MOSS 2010 无法同步用户配置文件
  8. 黑群晖XPEnoboot for DSM 5.2-5967.1
  9. 我的世界java甘蔗机_我的世界甘蔗机怎么做? MineCraft甘蔗机图文教程
  10. 基于微信小程序的药店管理系统毕业设计
  11. LintCode168.吹气球
  12. 双塔模型的瓶颈,究竟在哪?
  13. ArcGIS for Android 100.3.0(10):Callout的使用
  14. 转:长篇小说《七月七日晴》(超感人的)(上)
  15. 运放的基本应用电路-运放电路设计-运算放大器的基本应用电路
  16. MD5 到底是不是加密?
  17. 6种最常用恒流源电路的分析与比较
  18. Visual Haze Removal by a Unified GenerativeAdversarial Network(基于生成式对抗网络的图像去雾IEEE2019)
  19. 新手:linux环境配置以及linux下的pycharm安装
  20. ASP.Net中常见的文件类型

热门文章

  1. 一张画布搞懂你的钱途和前途
  2. 闲鱼架构如何一招提效 30% ?
  3. vector_empty
  4. Dynamic Bone ——Unity 3D动态骨骼插件
  5. 少样本学习新突破!创新奇智入选ECCV 2020 Oral论文
  6. Fragment切换的方式介绍和一些问题的解决
  7. 软路由中OpenWRT的dnsmasq配置
  8. better-scroll的使用
  9. html左右分隔可调整,word里面如何设置横向页面和纵向页面同时显示?分隔符号轻松搞定!...
  10. (个人)VR太极拳学习系统-创新实训第一周(1)