我的编程空间,编程开发者的网络收藏夹
学习永远不晚

oracle12C 创建用户学习

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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下创建的对象是可以同名的,反之也成立。


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

oracle12C 创建用户学习

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

[学习笔记] Oracle创建用户、分配权限、设置角色

创建用户create user student --用户名 identified by "123456" --密码 default tablespace USERS --表空间名 temporary tablespace t
[学习笔记] Oracle创建用户、分配权限、设置角色
2015-12-27

hadoop 创建用户

Hadoop是一个开源的分布式计算系统,它并不直接提供用户管理功能。用户管理可以通过操作系统来完成。以下是在Linux系统上创建用户的一般步骤:1. 打开终端,使用root用户登录系统。2. 输入以下命令以创建新用户:```useradd
2023-10-11

linux创建新用户

只需要四步就能创建一个新的linux用户 1.打开终端 快捷键Ctrl+Alt+T 2.创建用户和密码 sudo useradd -m aaa 创建用户名为aaa的用户 -m:自动建立用户的登入目录 sudo是允许系统管理员让普通用户执行r
2023-08-20

《Linux创建新用户》

本文主要讲解linux下如何进行新用户创建、登录以及删除操作 文章目录 1、创建新普通用户2、登录普通用户(一)已经创建过普通用户(二)第一次创建普通用户 3、普通用户切换至超级用户(root)及超级用户(root)回退回
2023-08-20

编程热搜

目录