Oracle 12c 用戶創建、角色、權限


 

一、創建用戶

創建用戶默認的是container=all,在cdb中只能創建全局用戶(c##開頭),會在cdb和所有的pdb中創建該用戶(但是pdb中的全局用戶需要另外授權才能夠在pdb中訪問)。在pdb中只能創建的用戶為本地用戶

SQL> show con_name;
CON_NAME
------------------------------
CDB$ROOT
SQL> 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 103 C##USER1 4 103 SQL> 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_name
CON_NAME
------------------------------
CDB$ROOT
SQL> 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 1
SQL> 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 1
C##USER1 3
C##USER1 4

三、修改參數

這里可以看到在cdb中修改,pdb會繼承進去;如果在pdb中修改會覆蓋pdb從cdb中繼承的參數含義、

SQL> show con_name
CON_NAME
------------------------------
CDB$ROOT
SQL> alter system set open_cursors=500 container=all;
系統已更改。
SQL> show parameter open_cursors;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
open_cursors integer 500

SQL> alter session set container=PDB1;
會話已更改。

SQL> show parameter open_cursors;

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
open_cursors integer 500

SQL> alter system set open_cursors=600;

系統已更改。

SQL> show parameter open_cursors;

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
open_cursors integer 600

SQL> 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數據庫

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM