oracle12c建立表空間、建立使用者、建立許可權
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##,想知道原因請看:
那麼要想建立的使用者不需要加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