ORACLE資料庫的模式對象的管理與維護
來源:互聯網
上載者:User
一、ORACLE
資料庫的模式對象的管理與維護
本節的主要內容是關於ORACLE
資料庫的模式對象的管理與維護,這些模式對象包括:資料表空間、表、視圖、索引、序列、同義字、聚集和完整性條件約束。對於每一個模式對象,首先描述了它的定義,說明了它的功能,最後以基於
SQL語言的執行個體說明如何對它們進行管理於維護。
1.1 資料表空間
由於資料表空間是包含這些模式對象的邏輯空間,有必要先對它進行維護。
建立資料表空間
SQL>CREATE TABLESPACE jxzy
>DATAFILE ‘/usr/oracle/dbs/jxzy.dbf’
>ONLINE;
修改資料表空間
SQL>ALTER TABLESPACE jxzy OFFLINE NORMAL;
SQL>ALTER TABLESPACE jxzy
>RENAME DATAFILE ‘/usr/oracle/dbs/jxzy.dbf’
>TO ‘/usr/oracle/dbs/jxzynew.dbf’
>ONLINE
SQL>CREATE TABLESPACE jxzy ONLINE
刪除資料表空間
SQL>DROP TABLESPACE jxzy
>INCLUDING CONTENTS
1. 2 表維護
表是
資料庫中資料存放區的基本單位,一個表包含若干列,每列具有列名、類型、長度等。
表的建立
SQL>CREATE TABLE jxzy.switch(
>OFFICE_NUM NUMBER(3,0) NOT NULL,
>SWITCH_CODE NUMBER(8,0) NOT NULL,
>SWITCH_NAME VARCHAR2(20) NOT NULL);
表的修改
SQL>ALTER TABLE jxzy.switch
>ADD (DESC VARCHAR2(30));
表的刪除
SQL>DROP TABLE jxzy.switch play.bitsCN.com累了嗎玩一下吧
>CASCADE CONSTRAINTS
//刪除引用該表的其它表的完整性條件約束
1. 3 視圖維護
視圖是由一個或若干基表產生的資料集合,但視圖不佔儲存空間。建立視圖可以保護資料安全(僅讓使用者查詢修改可以看見的一些行列)、簡化查詢操作、保護資料的獨立性。
視圖的建立
SQL>CREATE VIEW jxzy.pole_well_view AS
>(SELECT pole_path_num AS path,
pole AS device_num FROM pole
>UNION
>SELECT pipe_path_num AS path,
> well AS device_num FROM well);
視圖的替換
SQL>REPLACE VIEW jxzy.pole_well_view AS
>(SELECT pole_path_num AS path,
pole AS support_device FROM pole
>UNION
>SELECT pipe_path_num AS path,
well AS support_device FROM well);
視圖的刪除
SQL>DROP VIEW jxzy.pole_well_view; play.bitsCN.com累了嗎玩一下吧
1.4 序列維護
序列是由序列發生器產生的唯一的整數。
序列的建立
SQL>CREATE SEQUENCE jxzy.sequence_cable
>START WITH 1
>INCREMENT BY 1
>NO_MAXVALUE;
建立了一個序列,jxzy.sequence_cable.currval返回當前值,jxzy.sequence_cable.nextval 返回當前值加1後的新值
序列的修改
SQL>ALTER SEQUENCE jxzy.sequence_cable
>START WITH 1 //起點不能修改,若修改,應先刪除,然後重新定義
>INCTEMENT BY 2
>MAXVALUE 1000;
序列的刪除
SQL>DROP SEQUENCE jxzy.sequence_cable
1. 5 索引維護
索引是與表相關的一種結構,它是為了提高資料的檢索速度而建立的。因此,為了提高表上的索引速度,可在表上建立一個或多個索引,一個索引可建立在一個或幾個列上。
對查詢型的表,建立多個索引會大大提高查詢速度,對更新型的表,如果索引過多,會增大開銷。
索引分唯一索引和非唯一索引
索引的建立
SQL>CREATE INDEX jxzy.idx_switch
>ON switch(switch_name)
>TABLESPACE jxzy;
索引的修改
SQL>ALTER INDEX jxzy.idx_switch
>ON switch(office_num,switch_name)
>TABLESPACE jxzy;
索引的刪除
SQL>DROP INDEX jxzy.idx_switch;
1. 6 完整性條件約束管理
資料庫資料的完整性指資料的正確性和相容性。資料完整型檢查防止
資料庫中存在不符合語義的資料。
完整性條件約束是對錶的列定義一組規則說明方法。ORACLE提供如下的完整性條件約束.
a. NOT NULL 非空
b. UNIQUE 唯一關鍵字
c. PRIMATY KEY 主鍵一個表只能有一個,非空
d. FOREIGA KEY 外鍵 feedom.net國內最早的網管網站
e.CHECK 表的每一行對指定條件必須是true或未知(對於空值)
例如:
某列定義非空約束
SQL>ALTER TABLE office_organization
>MODIFY(desc VARCHAR2(20)
>CONSTRAINT nn_desc NOT NULL)
某列定義唯一關鍵字
SQL>ALTER TABLE office_organization
>MODIFY(office_name VATCHAR2(20)
>CONSTRAINT uq_officename UNIQUE)
定義主鍵約束,主鍵要求非空
SQL>CREATE TABLE switch(switch_code NUMBER(8)
>CONSTRAINT pk_switchcode PRIMARY KEY,)
使主鍵約束無效
SQL>ALTER TABLE switch DISABLE PRIMARY KEY
定義外鍵
SQL>CREATE TABLE POLE(pole_code NUMBER(8),
>office_num number(3) bbs.bitsCN.com國內最早的網管論壇
>CONSTRAINT fk_officenum
>REFERENCES office_organization(office_num)
>ON DELETE CASCADE);
定義檢查
SQL>CREATE TABLE office_organization(
>office_num NUMBER(3),
>CONSTRAINT check_officenum
>CHECK (office_num BETWEEN 10 AND 99);
二、ORACLE
資料庫使用者與許可權管理
ORACLE是多使用者系統,它允許許多使用者共用系統資源。為了保證
資料庫系統的安全,
資料庫管理系統配置了良好的安全機制。
2. 1 ORACLE
資料庫安全性原則
建立系統級的安全保證
系統級特權是通過授予使用者系統級的權利來實現,系統級的權利(系統特權)包括:建立資料表空間、建立使用者、修改使用者的權利、刪除使用者等。系統特權可授予使用者,也可以隨時回收。ORACLE系統特權有80多種。
建立對象級的安全保證
對象級特權通過授予使用者對
資料庫中特定的表、視圖、序列等進行操作(查詢、增、刪改)的權利來實現。
建立使用者級的安全保證
使用者層次安全性保障通過使用者口令和角色機制(一組權利)來實現。引入角色機制的目的是簡化對使用者的授權與管理。做法是把使用者按照其功能分組,為每個使用者建立角色,然後把角色指派給使用者,具有同樣角色的使用者有相同的特權。
2.2 使用者管理
ORACLE使用者管理的內容主要包括使用者的建立、修改和刪除
使用者的建立
SQL>CREATE USER jxzy
>IDENTIFIED BY jxzy_password
>DEFAULT TABLESPACE system
>QUATA 5M ON system; //供使用者使用的最大空間限額
使用者的修改
SQL>CREATE USER jxzy
>IDENTIFIED BY jxzy_pw
>QUATA 10M ON system;
刪除使用者及其所建對象
SQL>DROP USER jxzy CASCADE; //同時刪除其建立的實體 blog.bitsCN.com網管部落格等你來搏
2.3系統特權管理與控制
ORACLE 提供了80多種系統特權,其中每一個系統特權允許使用者執行一個或一類
資料庫操作。
授予系統特權
SQL>GRANT CREATE USER,ALTER USER,DROP USER
>TO jxzy_new
>WITH ADMIN OPTION;
回收系統特權
SQL>REVOKE CREATE USER,ALTER USER,DROP USER
>FROM jxzy_new
//但沒有級聯回收功能
顯示已被授予的系統特權(某使用者的系統級特權)
SQL>SELECT*FROM sys.dba_sys_privs
2.4 對象特權管理與控制
ORACLE對象特權指使用者在指定的表上進行特殊操作的權利。這些特殊操作包括增、刪、改、查看、執行(預存程序)、引用(其它表欄位作為外鍵)、索引等。
授予對象特權
SQL>GRANT SELECT,INSERT(office_num,office_name), feedom.net國內最早的網管網站
>UPDATE(desc)ON office_organization
>TO new_adminidtrator
>WITH GRANT OPTION;
//級聯授權
SQL>GRANT ALL ON office_organization
>TO new_administrator
回收對象特權
SQL>REVOKE UPDATE ON office_orgaization
>FROM new_administrator
//有級聯回收功能
SQL>REVOKE ALL ON office_organization
>FROM new_administrator
顯示已被授予的全部對象特權
SQL>SELECT*FROM sys.dba_tab_privs
2.5 角色的管理
ORACLE的角色是命名的相關特權組(包括系統特權與對象特權)