標籤:
一、建立使用者
建立使用者預設的是container=all,在cdb中只能建立全域使用者(c##開頭),會在cdb和所有的pdb中建立該使用者(但是pdb中的全域使用者需要另外授權才能夠在pdb中訪問)。在pdb中只能建立的使用者為本機使用者
SQL> show con_name;CON_NAME------------------------------CDB$ROOTSQL> create user user1 identified by user1;create user user1 identified by user1*第 1 行出現錯誤:ORA-65096: 公用使用者名稱或角色名稱無效SQL> create user c##user1 identified by user1;使用者已建立。SQL> SELECT USERNAME,CON_ID,USER_ID FROM CDB_USERS WHERE USERNAME=‘C##USER1‘;USERNAME CON_ID USER_ID
-------------------------C##USER1 1 102
C##USER1 3 103C##USER1 4 103SQL> alter session set container=pdb1;會話已更改。SQL> create user c##user2 identified by user2;create user c##user2 identified by user2*第 1 行出現錯誤:ORA-65094: 本機使用者名或角色名稱無效SQL> create user user2 identified by user2;使用者已建立。SQL> SELECT USERNAME,CON_ID,USER_ID FROM CDB_USERS WHERE USERNAME=‘USER2‘;USERNAME CON_ID USER_ID-------------------------USER2 3 104
二、角色、使用者授權
使用者授權預設情況下是只會給當前container,在cdb中也可以指定container=all,對所有open的pdb且存在該使用者都進行授權
SQL> show con_nameCON_NAME------------------------------CDB$ROOTSQL> grant connect to c##user1;授權成功。SQL> select GRANTEE,con_id from cdb_ROLE_PRIVS where GRANTED_ROLE=‘CONNECT‘ AND GRANTEE=‘C##USER1‘;GRANTEE CON_ID-------------------------------------------------------------------------------------------------------------------------------- ----------C##USER1 1SQL> grant resource to c##user1 container=all;授權成功。SQL> select GRANTEE,con_id from cdb_ROLE_PRIVS where GRANTED_ROLE=‘RESOURCE‘ AND GRANTEE=‘C##USER1‘;GRANTEE CON_ID-------------------------------------------------------------------------------------------------------------------------------- ----------C##USER1 1C##USER1 3C##USER1 4
三、修改參數
這裡可以看到在cdb中修改,pdb會繼承進去;如果在pdb中修改會覆蓋pdb從cdb中繼承的參數含義、
SQL> show con_nameCON_NAME------------------------------CDB$ROOTSQL> alter system set open_cursors=500 container=all;系統已更改。SQL> show parameter open_cursors;NAME TYPE VALUE------------------------------------ ----------- ------------------------------open_cursors integer 500SQL> alter session set container=PDB1;會話已更改。SQL> show parameter open_cursors;NAME TYPE VALUE------------------------------------ ----------- ------------------------------open_cursors integer 500SQL> alter system set open_cursors=600;系統已更改。SQL> show parameter open_cursors;NAME TYPE VALUE------------------------------------ ----------- ------------------------------open_cursors integer 600SQL> alter session set container=CDB$ROOT;會話已更改。SQL> show parameter open_cursors;NAME TYPE VALUE------------------------------------ ----------- ------------------------------open_cursors integer 500
參考
ORACLE-BASE - Multitenant : Overview of Container Databases (CDB) and Pluggable Databases (PDB)
【ORACLE】ORACLE 12c PDB 基礎 - 臨淵羨魚 - 部落格頻道 - CSDN.NET
CDB和PDB基本管理 - Ziyoo - 部落格園
Oracle 12C 多租戶(Oracle Multitenant)--基本概念-zerocool88888888-ChinaUnix部落格
ORACLE 12C PDB 維護基礎介紹 – 提供專業ORACLE技術諮詢和支援@Phone:13429648788 - 惜分飛
Oracle 12c CDB PDB - 丁應思 - 部落格園
Oracle 12c入門第三講: Oracle 12c基本體繫結構 (3) pdb,cdb中繼資料關係 ...,資料智能網,Oracle 12C
淺談Oracle資料庫12c PDB技術 - Oracle安裝與升級 - TechTarget資料庫
Oracle 12c 使用者建立、角色、許可權