文章詳情頁
ORACLE數據庫對象與用戶管理
瀏覽:5日期:2023-11-12 10:44:25
Oracle數據庫對象與用戶治理 一、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’>ONLINESQL>CREATE TABLESPACE jxzy ONLINE刪除表空間SQL>DROP TABLESPACE jxzy>INCLUDING CONTENTS1. 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>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;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_cable1. 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 外鍵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)>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; //同時刪除其建立的實體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_privs2.4 對象特權治理與控制ORACLE對象特權指用戶在指定的表上進行非凡操作的權利。這些非凡操作包括增、刪、改、查看、執行(存儲過程)、引用(其它表字段作為外鍵)、索引等。授予對象特權SQL>GRANT SELECT,INSERT(office_num,office_name),>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_privs2.5 角色的治理ORACLE的角色是命名的相關特權組(包括系統特權與對象特權),ORACLE用它來簡化特權治理,可把它授予用戶或其它角色。ORACLE數據庫系統預先定義了CONNECT 、RESOURCE、 DBA、 EXP_FULL_DATABASE、 IMP_FULL_DATABASE五個角色。CONNECT具有創建表、視圖、序列等特權;RESOURCE具有創建過程、觸發器、表、序列等特權、DBA具有全部系統特權;EXP_FULL_DATABASE、 IMP_FULL_DATABASE具有卸出與裝入數據庫的特權。通過查詢sys.dba_sys_privs可以了解每種角色擁有的權利。授予用戶角色SQL>GRANT DBA TO new_administractor>WITH GRANT OPTION;
上一條:Oracle認證資料下一條:Oracle以網格技術解決成本難題
排行榜