小編給大家分享一下oracle12c如何創建公用用戶和本地用戶,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
12c推出了可插拔庫,管理用戶也分為兩種:本地用戶和公用用戶。本地用戶是指在插拔數據庫(PDB)中的用戶,和12c之前的版本沒有什么區別。公用用戶只存在于可插拔環境中,在傳統的數據庫環境中不存在這種應用。怎么理解公用用戶呢?可以簡單的把它當做容器(CDB)用戶,可以在各個通用與所有可插拔數據庫(PDB)中使用。這個用戶就像是小區的物業管理員,由小區物業來任命并且可以管理小區所有用戶。
如果第一次登錄CDB數據庫,用傳統方式創建用戶會報錯,這就是因為在CDB環境創建的用戶為公共用戶,語法和普通用戶不同。
1. 使用sqlplus登錄可插拔數據庫
[oracle@snow ~]$ sqlplus / as sysdba
2. 通過con_name能看到當前登錄的環境是CDB根庫,CDB包含一個名為PDB1的可插拔庫。
SYS@cdb > show con_name pdbs;
CON_NAME
------------------------------
CDB$ROOT
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 PDB1 READ WRITE NO
3. 創建公用用戶bighero, 需要使用C##或者c##作為該用戶名的開頭。
SYS@cdb > create user c##bighero identified by bighero;
User created.
如果使用傳統創建用戶的方法會報錯
SYS@cdb > create user bighero identified by bighero;
create user bighero identified by bighero
*
ERROR at line 1:
ORA-65096: invalid common user or role name
4. 創建公用角色, 同公用用戶一樣也需要使用C##或者c##作為角色名的開頭。
SYS@cdb > create role c##myroles container = all;
將dba角色授予公用角色c##myroles, 適用范圍為所有PDB
SYS@cdb > grant dba to c##myroles container = all;
將公用角色授予公用用戶, 使用范圍為所有PDB
SYS@cdb > grant c##myroles to c##bighero container = all;
以上操作也可以使用grant xx to user的方式使用一條語句完成
SYS@cdb > grant dba to c##bighero identified by bighero container = all;
5. 下面使用公用用戶分別登錄CDB、PDB看看是否通用。 登錄PDB使用了tnsnames中已經配置好的鏈接字符串@pdb1
[oracle@snow ~]$ sqlplus c##bighero/bighero
C##BIGHERO@cdb > show con_name
CON_NAME
------------------------------
CDB$ROOT
[oracle@snow ~]$ sqlplus c##bighero/bighero@pdb1
C##BIGHERO@pdb1 > show con_name
CON_NAME
------------------------------
PDB1
鏈接字符串如下:
[oracle@snow admin]$ cat tnsnames.ora
pdb1=
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.228.12)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = pdb1)
)
)
6. 在PDB中創建用戶和創建普通用戶就沒有什么區別了
create user baymax identified by baymax
default tablespace baymax_comp
temporary tablespace temp
quota unlimited on baymax_comp;
7. CDB和PDB之間的切換方式
SYS@cdb > alter session set container = pdb1;
SYS@cdb > alter session set container = cdb$root;
以上是“oracle12c如何創建公用用戶和本地用戶”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。