熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

ORACLE數據庫對象與用戶管理

2022-06-13   來源: Oracle 

  一ORACLE數據庫的模式對象的管理與維護
  
  本節的主要內容是關於ORACLE數據庫的模式對象的管理與維護這些模式對象包括表空間視圖索引序列同義詞聚集和完整性約束對於每一個模式對象首先描述了它的定義說明了它的功能最後以基於SQL語言的實例說明如何對它們進行管理於維護
  
   表空間
  
  由於表空間是包含這些模式對象的邏輯空間有必要先對它進行維護
  
  創建表空間
  SQL>CREATE TABLESPACE jxzy
  
  >DATAFILE /usr/oracle/dbs/jxzydbf
  
  >ONLINE;
  
  修改表空間
  SQL>ALTER TABLESPACE jxzy OFFLINE NORMAL;
  
  SQL>ALTER TABLESPACE jxzy
  
  >RENAME DATAFILE /usr/oracle/dbs/jxzydbf
  
  >TO /usr/oracle/dbs/jxzynewdbf
  
  >ONLINE
  
  SQL>CREATE TABLESPACE jxzy ONLINE
  
  刪除表空間
  SQL>DROP TABLESPACE jxzy
  
  >INCLUDING CONTENTS
  
   表維護
  
  表是數據庫中數據存儲的基本單位一個表包含若干列每列具有列名類型長度等
  
  表的建立
  SQL>CREATE TABLE jxzyswitch(
  
  >OFFICE_NUM NUMBER() NOT NULL
  
  >SWITCH_CODE NUMBER() NOT NULL
  
  >SWITCH_NAME VARCHAR() NOT NULL);
  
  表的修改
  SQL>ALTER TABLE jxzyswitch
  
  >ADD (DESC VARCHAR());
  
  表的刪除
  SQL>DROP TABLE jxzyswitch
  
  >CASCADE CONSTRAINTS
  
  //刪除引用該表的其它表的完整性約束
  
   視圖維護
  
  視圖是由一個或若干基表產生的數據集合但視圖不占存儲空間建立視圖可以保護數據安全(僅讓用戶查詢修改可以看見的一些行列)簡化查詢操作保護數據的獨立性
  
  視圖的建立
  SQL>CREATE VIEW jxzypole_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 jxzypole_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 jxzypole_well_view;
  
   序列維護
  
  序列是由序列發生器生成的唯一的整數
  
  序列的建立
  SQL>CREATE SEQUENCE jxzysequence_cable
  
  >START WITH
  
  >INCREMENT BY
  
  >NO_MAXVALUE;
  
  建立了一個序列jxzysequence_cablecurrval返回當前值jxzysequence_cablenextval 返回當前值加後的新值
  
  序列的修改
  SQL>ALTER SEQUENCE jxzysequence_cable
  
  >START WITH //起點不能修改若修改應先刪除然後重新定義
  
  >INCTEMENT BY
  
  >MAXVALUE ;
  
  序列的刪除
  SQL>DROP SEQUENCE jxzysequence_cable
  
   索引維護
  
  索引是與表相關的一種結構它是為了提高數據的檢索速度而建立的因此為了提高表上的索引速度可在表上建立一個或多個索引一個索引可建立在一個或幾個列上
  
  對查詢型的表建立多個索引會大大提高查詢速度對更新型的表如果索引過多會增大開銷
  
  索引分唯一索引和非唯一索引
  
  索引的建立
  SQL>CREATE INDEX jxzyidx_switch
  
  >ON switch(switch_name)
  
  >TABLESPACE jxzy;
  
  索引的修改
  SQL>ALTER INDEX jxzyidx_switch
  
  >ON switch(office_numswitch_name)
  
  >TABLESPACE jxzy;
  
  索引的刪除
  SQL>DROP INDEX jxzyidx_switch;
  
   完整性約束管理
  
  數據庫數據的完整性指數據的正確性和相容性數據完整型檢查防止數據庫中存在不符合語義的數據
  
  完整性約束是對表的列定義一組規則說明方法ORACLE提供如下的完整性約束
  
  a NOT NULL 非空
  
  b UNIQUE 唯一關鍵字
  
  c PRIMATY KEY 主鍵一個表只能有一個非空
  
  d FOREIGA KEY 外鍵
  
  eCHECK 表的每一行對指定條件必須是true或未知(對於空值)
  
  例如
  
  某列定義非空約束
  SQL>ALTER TABLE office_organization
  
  >MODIFY(desc VARCHAR()
  
  >CONSTRAINT nn_desc NOT NULL)
  
  某列定義唯一關鍵字
  SQL>ALTER TABLE office_organization
  
  >MODIFY(office_name VATCHAR()
  
  >CONSTRAINT uq_officename UNIQUE)
  
  定義主鍵約束主鍵要求非空
  SQL>CREATE TABLE switch(switch_code NUMBER()
  
  >CONSTRAINT pk_switchcode PRIMARY KEY)
  
  使主鍵約束無效
  SQL>ALTER TABLE switch DISABLE PRIMARY KEY
  
  定義外鍵
  SQL>CREATE TABLE POLE(pole_code NUMBER()
  
  >office_num number()
  
  >CONSTRAINT fk_officenum
  
  >REFERENCES office_organization(office_num)
  
  >ON DELETE CASCADE);
  
  定義檢查
  SQL>CREATE TABLE office_organization(
  
  >office_num NUMBER()
  
  >CONSTRAINT check_officenum
  
  >CHECK (office_num BETWEEN AND );
  
  二ORACLE數據庫用戶與權限管理
  
  ORACLE是多用戶系統它允許許多用戶共享系統資源為了保證數據庫系統的安全數據庫管理系統配置了良好的安全機制
  
   ORACLE數據庫安全策略
  
  建立系統級的安全保證
  系統級特權是通過授予用戶系統級的權利來實現系統級的權利(系統特權)包括建立表空間建立用戶修改用戶的權利刪除用戶等系統特權可授予用戶也可以隨時回收ORACLE系統特權有多種
  
  建立對象級的安全保證
  對象級特權通過授予用戶對數據庫中特定的表視圖序列等進行操作(查詢刪改)的權利來實現
  
  建立用戶級的安全保證
  用戶級安全保障通過用戶口令和角色機制(一組權利)來實現引入角色機制的目的是簡化對用戶的授權與管理做法是把用戶按照其功能分組為每個用戶建立角色然後把角色分配給用戶具有同樣角色的用戶有相同的特權
  
   用戶管理
  
  ORACLE用戶管理的內容主要包括用戶的建立修改和刪除
  
  用戶的建立
  SQL>CREATE USER jxzy
  
  >IDENTIFIED BY jxzy_password
  
  >DEFAULT TABLESPACE system
  
  >QUATA M ON system; //供用戶使用的最大空間限額
  
  用戶的修改
  SQL>CREATE USER jxzy
  
  >IDENTIFIED BY jxzy_pw
  
  >QUATA M ON system;
  
  刪除用戶及其所建對象
  SQL>DROP USER jxzy CASCADE; //同時刪除其建立的實體
  
  系統特權管理與控制
  
  ORACLE 提供了多種系統特權其中每一個系統特權允許用戶執行一個或一類數據庫操作
  
  授予系統特權
  SQL>GRANT CREATE USERALTER USERDROP USER
  
  >TO jxzy_new
  
  >WITH ADMIN OPTION;
  
  回收系統特權
  SQL>REVOKE CREATE USERALTER USERDROP USER
  
  >FROM jxzy_new
  
  //但沒有級聯回收功能
  
  顯示已被授予的系統特權(某用戶的系統級特權)
  SQL>SELECT*FROM sysdba_sys_privs
  
   對象特權管理與控制
  
  ORACLE對象特權指用戶在指定的表上進行特殊操作的權利這些特殊操作包括增查看執行(存儲過程)引用(其它表字段作為外鍵)索引等
  
  授予對象特權
  SQL>GRANT SELECTINSERT(office_numoffice_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 sysdba_tab_privs
  
   角色的管理
  
  ORACLE的角色是命名的相關特權組(包括系統特權與對象特權)
From:http://tw.wingwit.com/Article/program/Oracle/201311/18378.html
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.