代码改变世界

oracle 12c common user与local user

2017-03-20 20:59  abce  阅读(1870)  评论(0编辑  收藏  举报

12c的多租户架构,引入CDB和PDB概念,使得用户也分为两种:common用户和local用户。

1.common用户
就是数据库的用户,这个用户在root和每个已存在的或以后要创建的PDB都是相同的标识。每个common用户都可以连接到root(也叫做root容器,被命名为CDB$root)、任何有连接权限的PDB,并执行相关操作。它不是系统提供(比如sys、system用户)的就是用户创建的。
具有如下特性:
·一个common用户可以在拥有create session权限的任意容器中登录
·用户创建的common用户必须以c##或C##开始
·common用户的名称只能包含ASCII或EBCDIC字符
·在整个容器下,common用户名是唯一的
·对于不同common用户对应的schema,在每个容器中可以不同


2.local用户
只能在自己的PDB中
具有如下特性:
·一个local用户指定到特定的PDB中,在这个PDB拥有自己的schema
·local用户不可以在root下创建
·local用户不能登录到root和其他PDB
·local用户名称不能以c##或C##开始
·在一个PDB下,local名是唯一的
·不同的PDB可以有相同的local名
·local用户是否可以访问common用户下的对象在于它的权限

 

图解: