oracle筆記之表空間、用戶和同義詞

1、表空間

(1)創建表空間

Description of create_tablespace.gif follows

(2)修改表空間

Description of alter_tablespace.gif follows

(3)刪除表空間

Description of drop_tablespace.gif follows

--創建表空間
CREATE [BIGFILE/UNDO/TEMPORARY] TABLESPACE tablespaceName
DATAFILE 'dbfile.dbf'--指定表空間物理文件
SIZE 100M -- 大小 100M
AUTOEXTEND ON --自動增大
NEXT 10M  --每次10M
MAXSIZE UNLIMITED; --最大不限制

--修改表空間
ALTER TABLESPACE tablespaceName 
ADD DATAFILE 'test.dbf'
SIZE 100K
AUTOEXTEND ON
NEXT 10K
MAXSIZE 100K;

--查看錶空間
SELECT * from DBA_TABLESPACES;
SELECT * from USER_TABLESPACES;

--刪除表空間
DROP TABLESPACE tablespaceName; ---刪除空的表空間,但是不包含物理文件
DROP TABLESPACE tablespaceName INCLUDING CONTENTS; --刪除非空表空間,但是不包含物理文件
DROP TABLESPACE tablespaceName INCLUDING DATAFILES; --刪除空表空間,包含物理文件
DROP TABLESPACE tablespaceName INCLUDING CONTENTS AND DATAFILES; --刪除空表空間,包含物理文件和數據庫對象
DROP TABLESPACE tablespaceName INCLUDING CONTENTS AND DATAFILES CASCADE CONSTRAINTS;--如果其他表空間中的表有外鍵等約束關聯到了本表空間中的表的字段,需要刪除所有引用完整性約束

2、用戶

(1)創建用戶

Description of create_user.gif follows

(2)修改用戶

Description of alter_user.gif follows

(3)刪除用戶

Description of drop_user.gif follows

--創建用戶
CREATE USER userName 
IDENTIFIED BY password --用戶密碼
DEFAULT TABLESPACE USERS --默認表空間
TEMPORARY TABLESPACE TEMP -- 臨時表空間默認 TEMP
PROFILE DEFAULT; --指定要分配給用戶的配置文件。 該配置文件限制了用戶可以使用的數據庫資源量。 如果省略此子句,則Oracle數據庫會將DEFAULT配置文件分配給用戶。

--給用戶添加角色從而賦予權限
GRANT privilege [, ...] ON object [, ...] TO { PUBLIC | GROUP group | username }
GRANT CONNECT, RESOURCE, DBA to userName;--通過select  * from DBA_SYS_PRIVS查看每個角色包含的具體權限。

--修改用戶
ALTER USER userName 
IDENTIFIED BY password
DEFAULT TABLESPACE example;
ALTER USER userName QUOTA 5M ON USERS;--修改userName用戶在USERS表空間上爲5M限額

--查看用戶
SELECT * FROM ALL_USERS;
SELECT * FROM ALL_USERS;
SELECT * FROM DBA_USERS;

--刪除用戶
DROP USER usrname; --刪除shama下沒有任何表的用戶
DROP USER usrname CASCADE; ----刪除shama下有內容的用戶

3、同義詞(Oracle的同義詞(synonyms)從字面上理解就是別名的意思,和視圖的功能類似,是一種映射關係。)

(1)創建同義詞

Description of create_synonym.gif follows

(2)修改同義詞

Description of alter_synonym.gif follows

(3)刪除同義詞

Description of drop_synonym.gif follows

-- 創建同義詞
CREATE [public] synonym 同義詞名稱 for [username.]objectName;
CREATE PUBLIC SYNONYM test_table FOR hr.test;

--使用同義詞
SELECT * FROM test_table;

--修改同義詞
ALTER SYNONYM test COMPILE; --當同義詞的原對象被重新建立時,同義詞需要重新編譯

--查看同義詞
select * from dba_synonyms;
select * from USER_SYNONYMS;
select * from ALL_SYNONYMS;

--刪除同義詞
DROP PUBLIC SYNONYM test; 

4、數據字典(Oracle通過數據字典來管理和展現數據庫信息,數據字典通常儲存數據庫的元數據)

(1)內部RDBMS(X$)表

X$表示Oracle數據庫的核心部分,這些表用於跟蹤數據庫內部信息。X$表是加密命名的,在數據庫啓動時由Oracle應用程序動態創建。

(2)數據字典表

 數據字典表(Data dictionary table)用以存儲表、索引、約束以及其它數據庫結構的信息,這些對象通常以“$”結尾(例如:TAB$、OBJ$、TS$等),在創建數據庫的時候通過運行$ORACLE_HOME/rdbms/admin/sql.bsq腳本來創建。sql.bsq是一個非常重要的文件,其中包含了數據字典表的定義及註釋說明。

(3)動態性能視圖(V$)動態性能視圖記錄了數據庫運行時信息和統計數據,大部分動態性能視圖被實時更新以及反映數據庫當前狀態。在數據庫啓動時,Oracle動態創建X$表,在此基礎上,Oracle創建了GV$和V$視圖,GV$即Global V$,除了一些特例外,每個V$都對應一個GV$。GV$產生是爲了OPS/RAC環境的需要,每個V$都是基於GV$的,只是GV$多了INST_ID列來顯示實例ID。 

(4)靜態數據字典視圖

由於X$表和數據字典表通常不能直接被用戶訪問,Oracle創建了靜態數據字典視圖來提供用戶對於數據字典信息的訪問,由於這些信息通常相對穩定,不能直接修改,所以又被稱爲靜態數據字典視圖。靜態數據字典視圖在創建數據庫時由$ORACLE_HOME/rdbms/admin/catagory.sql腳本創建。

     靜態數據字典視圖按照前綴的不同通常分成三類:

     ● USER_:當前用戶schema下的對象信息;

     ● ALL_:用於當前用戶有權限訪問的所有對象的信息;

     ● DBA_:所有數據庫對象的信息,用於需要有 select any table 的權限才能訪問。

     通過三類視圖在本質上是爲了實現權限控制。在Oracle數據庫中,每個用戶與Schema是對應的,Schema是用戶所擁有的對象的集合。數據庫通過Schema將不同用戶的對象隔離開來,用戶可以自由的訪問自己的對象,但是要訪問其他Schema對象就需要相關的授權。創建一個用戶後,使用該用戶登錄後,默認就會有與用戶名相同的Schema存在。例如:創建XQ用戶,就會有一個默認的shema名稱爲XQ。

-- 查看sid
select * from  V$database;

 

參考鏈接:

(1):https://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_9002.htm#SQLRF01805

(2):https://www.cnblogs.com/pengineer/p/4419275.html

(3):http://zw1840.com/oracle/translation/concepts/index.htm

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章