签到成功

知道了

CNDBA社区CNDBA社区

12C 用户管理与赋权

2016-09-19 20:13 3152 2 原创 Oracle 12C
作者: Expect-乐

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

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

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

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

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


1.2  Local user本地用户

和公共用户不同之处:

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

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

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

4.只要有相应的权限,本地用户也可以访问公共用户里的对象。http://www.cndba.cn/Expect-le/article/258

5.可以editions-enable一个本地用户,而不是公共用户。http://www.cndba.cn/Expect-le/article/258

1.3  创建公共用户

需要注意的地方:

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

2.当前容器为CDB$ROOT

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

4.为了指定一个用户为公共用户,需要加上CONTAINER=ALL的子句。如果当前容器是root,不加也可以。http://www.cndba.cn/Expect-le/article/258

http://www.cndba.cn/Expect-le/article/258

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

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

例子:

http://www.cndba.cn/Expect-le/article/258

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;


赋权限:

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


http://www.cndba.cn/Expect-le/article/258

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

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

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中有相同的本地用户名。

http://www.cndba.cn/Expect-le/article/258

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

例子:

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;


http://www.cndba.cn/Expect-le/article/258

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

http://www.cndba.cn/Expect-le/article/258

http://www.cndba.cn/Expect-le/article/258

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;


创建profilehttp://docs.oracle.com/database/121/DBSEG/users.htm#DBSEG20244


版权声明:本文为博主原创文章,未经博主允许不得转载。

12C 用户管理与赋权

用户评论
* 以下用户言论只代表其个人观点,不代表CNDBA社区的观点或立场
Expect-乐

Expect-乐

关注

Without the continuous bitter cold, there can be no fragrant plum blossom

  • 336
    原创
  • 6
    翻译
  • 100
    转载
  • 41
    评论
  • 访问:1553487次
  • 积分:1957
  • 等级:核心会员
  • 排名:第4名
精华文章
    最新问题
    查看更多+
    热门文章
      热门用户
      推荐用户
        Copyright © 2016 All Rights Reserved. Powered by CNDBA · 皖ICP备2022006297号-1·

        QQ交流群

        注册联系QQ