ORACLE資料庫物件與使用者管理____資料庫

來源:互聯網
上載者:User
ORACLE資料庫物件與使用者管理
www.ncn.cn
一、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

>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_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 外鍵

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_privs

2.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_privs

2.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;
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.