1. 程式人生 > >oracle12c建立表空間、建立使用者、建立許可權

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

6.參考資料