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的角色是命名的相關特權組(包括系統特權與對象特權)
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.