Oracle 12c公用賬戶和本地使用者的建立

luashin發表於2016-03-11

Oracle 12c的賬戶可以分為公用賬戶和本地使用者,公有賬戶是在CDB下建立,可以給所有的PDB使用者使用,本地賬戶是隻能在PDB中建立的賬號。

建立公共使用者
alter session set container=CDB$ROOT;
create USER C##u02 identified by oracle container=all;
建立本地使用者

alter session set container=pdb4;
create USER u01 identified by oracle container=current;

SQL> SELECT USERNAME,CON_ID,USER_ID FROM CDB_USERS WHERE USERNAME='U01'; 
USERNAME                       CON_ID     USER_ID
------------------------------ ---------- ----------
U01                            4          105


在CDB中建立測試賬號

1、在CDB中建立賬號必須以C##開頭
 alter session set container=CDB$ROOT;
SQL> create user orcl identified by a;
create user orcl identified by a
            *
ERROR at line 1:
ORA-65096: invalid common user or role name

SQL> create user p##orcl identified by a;
create user p##orcl identified by a
            *
ERROR at line 1:
ORA-65096: invalid common user or role name

SQL> create user c##a identified by a;
User created.


SQL> select username from dba_users where username like 'C##%';
USERNAME
--------------------------------------------------------------------------------
C##A

---說明本地使用者不能以C##開頭

alter session set container=pdb4;
SQL>  create user c##B identified by B;
 create user c##B identified by B
            *
ERROR at line 1:
ORA-65094: invalid local user or role name

SQL> SELECT USERNAME,CON_ID,USER_ID FROM CDB_USERS WHERE USERNAME like 'C##%' ORDER BY USERNAME;
USERNAME                       CON_ID     USER_ID
------------------------------ ---------- ----------
C##BOSWLL                      4            103
C##BOSWLL 3 110
C##BOSWLL 1 102
C##BOSWLL 5 103
C##U02 4 106
C##U02 5 104
C##U02 1 103
C##U02 3 111

---建立公共使用者時,不能在pdb中建立,必須在cdb中建立公共使用者
SQL>  alter session set container=pdb4;
Session altered.

SQL> create USER C##u02 identified by oracle  container=all;
create USER C##u02 identified by oracle  container=all
                                *
ERROR at line 1:

ORA-65050: Common DDLs only allowed in CDB$ROOT

總結:
1 公共使用者必須以C##開頭,本地使用者只能以字母開頭,不能以C##使用者開頭
2 建立公共使用者時,必須是在CDB$ROOT
3 如果在PDB中已經存在一個使用者或者角色,則在CDB中不能建立相同的賬號或者角色名

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9034054/viewspace-2055714/,如需轉載,請註明出處,否則將追究法律責任。

相關文章