目錄
1.基本概念
1.1.關于賬号的概念
1.2.關于pdb和cdb的概念
3.建立使用者
4.給使用者建立權限
5.綜合練習(很重要.正在寫...)
6.參考資料
1.基本概念
1.1.關于賬号的概念
在安裝Oracle時,你需要記住設定的“全局資料庫名”(預設為orcl) 和 密碼,在以兩種方式登入時:
使用者名: sys(超級使用者==sysdba) / system(管理者使用者)Sys和system差別在于system不能建立表空間
system預設密碼:manager
sys預設預設:change_on_install
使用SQL Plus登入資料庫時,system使用密碼manager可直接登入。
但如果是sys使用者,密碼必須加上as sysdba,即完整密碼為:change_on_install as sysdba
如果是用工具Oracle SQL Developer登入sys使用者,那麼需要先用sqlplus登入sys,然後修改密碼,之後就用這個密碼連接配接既可以
修改指令:alter user sys identified by 123456
1.2.關于pdb和cdb的概念
Oracle12c 中,增加了可插接資料庫的概念,即PDB,允許一個資料庫容器(CDB 全稱:Container Database)承載多個可插拔資料庫(PDB 全稱:Pluggable Database)。cdb相當于作業系統,調用并管理各個pdb。pdb相當于真正提供業務需求的資料庫執行個體。我們可以用sqlplus指令登入sys使用者查詢一下:
select name , open_mode from v$pdbs;
可以看到預設建立了兩個pdb可插撥資料庫:
NAME OPEN_MODE
------------------------------ -----------------------
PDB$SEED READ ONLY
PDBORCL READ WRITE
可以看到有兩個pcd資料庫。
oracle 12c安裝後還建立了cdb。
2.建立表空間
建立表空間是分CDB下的表空間和PDB下的表空間的。
檢視表空間SQL如下:
select tablespace_name from dba_tablespaces;
建立資料表空間SQL如下:
create tablespace user_data -- 表空間名
datafile 'D:\APP\ORACLE\ORADATA\ORCL\bamboo_data.DBF' -- 表空間存儲檔案位置
size 50m -- 檔案大小
autoextend on
next 50m maxsize 20480m
extent management local;
建立臨時資料表空間SQL如下:
create temporary tablespace user_temp
tempfile 'D:\APP\ORACLE\ORADATA\ORCL\bamboo_temp.dbf'
size 50m
autoextend on
next 50m maxsize 20480m
extent management local;
指令 | 說明 | 例子 |
create tablespace xx | 建立表空間,表空間名稱為xx | |
logging/nologging | 生成日志/不生成日志 | |
datafile xx.dbf size mmM | 資料檔案的具體位置和資料檔案大小,如果有多個檔案,可以用逗号隔開,但是每個檔案都需要指明大小.機關以指定的機關為準如 5M 或 500K。 | |
删除表空間SQL如下:
drop tablespace user_temp including contents;-- 同時删除檔案
檢視表空間的所在路徑SQL:
select * from dba_data_files
(start) | ||
FILE_NAME | 檔案名 | D:\APP\ORACLE\ORADATA\ORCL\SYSTEM01.DBF |
FILE_ID | 檔案ID | 1 |
TABLESPACE_NAME | 表空間名 | SYSTEM |
BYTES | 位元組 | 838860800(B) = 800(MB) |
BLOCKS | 塊 | 102400 |
STATUS | 狀态 | AVAILABLE |
RELATIVE_FNO | 相對檔案編号 | 1 |
AUT | YES | |
MAXBYTES | 最大位元組 | 3.4360E+10 |
MAXBLOCKS | 最大塊 | 4194302 |
INCREMENT_BY | 增量 | 1280 |
USER_BYTES | 使用位元組 | 837812224 |
USER_BLOCKS | 使用塊 | 102272 |
ONLINE_ | 線上 | SYSTEM |
(end) |
3.建立使用者
建立使用者SQL如下:
create user c##bamboo identified by **** -- 使用者名和密碼
default tablespace user_data -- 設定預設表空間
temporary tablespace user_temp; -- 設定預設臨時表空間
因為我用的資料庫是12c,是以使用者名前面要加c##,想知道原因請看:
https://blog.csdn.net/wangsimiao118/article/details/78818836
那麼要想建立的使用者不需要加c##,那就是要求資料庫不能為CDB。也就是要連接配接PDB,隻有PDB中的資料庫建立的時候才能不加C##。
怎麼查資料庫是不是CDB呢,如下語句:
select CDB from v$database;
如果得到的結果為YES,那麼就是CDB的資料庫,否則,則不是。
要不想建立資料庫的時候不加c##,我們可以重新建立資料庫,打開
Database Configuration Assistant工具。
去掉紅框裡的勾選就可以了。
4.給使用者建立權限
給使用者權限SQL如下:
grant connect,resource,dba to username;
5.綜合練習(很重要.正在寫...)
綜合上面的知識,我們來建立一個PDB,然後通過這個PDB 去建立表空間和建立使用者、給使用者權限,然後通過這個使用者去連接配接pdb,然後建立表。
假設已經安裝了oracle12c
(1)現在我們用cmd指令行開始登陸oracle
sqlplus
輸入使用者 sys (我們用這個登陸)
輸入密碼:change_on_install as sysdba
登陸成功!如下圖示:
可以查一下目前資料庫
select name from v$database;
目前資料庫為:ORCL
檢視目前資料庫是不是CDB資料庫
select CDB from v$database;
目前資料庫是CDB資料庫。
查目前CDB有幾個PDB:
select name , open_mode from v$pdbs;
兩個:一個是預設的PDBORCL,另一個是PDB的模闆PDB$SEED(建立PDB的時候會用到PDB$SEED)
(2)建立PDB
6.參考資料
1.https://blog.csdn.net/dev_csdn/article/details/79459017
2.https://www.jb51.net/article/106497.htm