12C 用户管理与赋权

本文介绍了Oracle数据库中CDB(Container Database)和PDB(Pluggable Database)环境下公共用户与本地用户的区别及管理方法。包括如何创建公共用户和本地用户,以及对它们的权限设置和操作指南。
摘要由CSDN通过智能技术生成

1.1  Common user公共用户/通用用户

可以管理CDB,如果有权限也可以操作PDB。

公共用户可以在PDB数据库之间进行赋权操作,可以开关PDB(有权限),可以对整个CDB进行恢复操作。

公共用户可以在不同的PDB数据库中有不同的权限。

注意:如果先插入一个PDB大CDB中,如果有用户名相同的公共用户,会进行合并,密码是新插入的用户的密码,但是这个用户锁住的。

 

1.2  Local user本地用户

和公共用户不同之处:

1.本地用户不能创建公共用户,但是可以创建和修改本地用户权限或者赋权给本地化的公共用户和本地用户在PDB中。

2.可以赋公共角色给本地用户,但是权限只能用于本地用户的PDB。

3.同一个PDB中不能有重复名字的本地用户

4.只要有相应的权限,本地用户也可以访问公共用户里的对象。

5.可以editions-enable一个本地用户,而不是公共用户。

1.3  创建公共用户

需要注意的地方:

1.要有相应的创建权限(CREATE USER)

2.当前容器为CDB$ROOT

3.用户名必须是C##或者c##开头(可以修改),对已经存在的系统用户没有影响。例如sys,system

4.为了指定一个用户为公共用户,需要加上CONTAINER=ALL的子句。如果当前容器是root,不加也可以。

5.如果要指定表空间,临时表空间等,那么这些表空间必须在所有PDBS都存在。

6.用户创建的对象不能再PDB之间共享,但是通过数据库公共用户创建的对象可以在整个CDB中共享。

例子:

 

1
2
3
4
5
6
7
CREATE USER c##hr_admin
  IDENTIFIED BY password
  DEFAULT TABLESPACE data_ts
  QUOTA 100M ON temp_ts
  QUOTA 500K ON data_ts
  TEMPORARY TABLESPACE temp_ts
  CONTAINER = ALL;

 

赋权限:

1
GRANT SET CONTAINER, CREATE SESSION,DBA,PDB_DBA TO c##hr_admin CONTAINER = ALL;

 

 

注意:PDB_DBA这个角色,用于查询PDB中tables/views

common_user_prefix参数设定要求公共参数需要用C##开头,可以调整修改

 

1
2
3
4
SQL> show parameter common_user_prefix
NAME                     TYPE VALUE
------------------------------------ -----------------------------------------
common_user_prefix             string    C##

 

1.4  创建本地用户

1.首先连接到PDB,然后创建对应的PDB本地用户

2.本地用户一定不能C##或者c##开头

3.可以通过CONTAINER=CURRENT子句指定创建的用户作为本地用户,如果是已经登录到PDB中,可以不指定该子句。

4.本地用户名不可以和公共用户名相同。但是可以在不同的PDB中有相同的本地用户名。

5.使用本地用户,公共用户连接到PDB都可以创建新的本地用户。

例子:

 

 

1
2
3
4
5
6
7
8
CREATE USER kmurray
   IDENTIFIED BY password
  DEFAULT TABLESPACE data_ts
   QUOTA 100M ON temp_ts
   QUOTA 500K ON data_ts
   TEMPORARY TABLESPACE temp_ts
   PROFILE hr_profile
   CONTAINER = CURRENT;

 

修改本地用户权限,去访问其他PDB(EMP_DB, HR_DB)中的对象

 

1
2
3
4
5
6
ALTER USER c##hr_admin
  DEFAULT TABLESPACE data_ts
  TEMPORARY TABLESPACE temp_ts
  QUOTA 100M ON data_ts
  QUOTA 0 ON temp_ts
  SET CONTAINER_DATA = (EMP_DB, HR_DB) FOR V$SESSION CONTAINER = CURRENT;<br>转:http: //www.cndba.cn/Expect-le/article/258
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值