講解Oracle資料庫提供的多種安全性措施 (1)

idba發表於2008-05-10
 

Oracle的安全措施主要有三個方面,一是使用者標識和鑑定;二是授權和檢查機制;三是審計技術(是否使用審計技術可由使用者靈活選擇);除此之外,Oracle還允許使用者通過觸發器靈活定義自己的安全性措施。

一、使用者標識和鑑定

在Oracle中,最外層的安全性措施是讓使用者標識自己的名字,然後由系統進行核實。Oracle允許使用者重複標識三次,如果三次未通過,系統自動退出。

二、授權與檢查機制

Oracle的許可權包括系統許可權和資料庫物件的許可權兩類,採用非集中的授權機制,即DBA負責授予與回收系統許可權,每個使用者授予與回收自己建立的資料庫物件的許可權。

Oracle允許重複授權,即可將某一許可權多次授予同一使用者,系統不會出錯。Oracle也允許無效回收,即使用者沒有某種許可權,但回收此許可權的操作仍算成功。

1. 系統許可權

Oracle提供了80多種系統許可權,如建立會話、建立表、建立檢視、建立使用者等。DBA在建立一個使用者時需要將其中的一些許可權授予該使用者。

Oracle支援角色的概念。所謂角色就是一組系統許可權的集合,目的在於簡化許可權管理。Oracle除允許DBA定義角色外,還提供了預定義的角色,如CONNECT,RESOURCE和DBA。

具有CONNECT角色的使用者可以登入資料庫,執行資料查詢和操縱。即可以執行ALTER TABLE,CREATE VIEW,CREATE INDEX,DROP TABLE,DROP VIEW,DROP INDEX,GRANT,REVOKE,INSERT,SELECT,UPDATE,DELETE,AUDIT,NOAUDIT等操作。

RESOURCE角色可以建立表,即執行CREATE TABLE操作。建立表的使用者將擁有對該表的所有許可權。

DBA角色可以執行某些授權命令,建立表,對任何表的資料進行操縱。它涵蓋了前兩種角色,此外還可以執行一些管理操作,DBA角色擁有最高階別的許可權。

例如DBA建立一使用者U1後,欲將ALTER TABLE,CREATE VIEW,CREATE INDEX,DROP TABLE,DROP VIEW,DROP INDEX,GRANT,REVOKE,INSERT,SELECT,UPDATE,DELETE,AUDIT,NOAUDIT等系統許可權授予U1,則可以只簡單地將CONNECT角色授予U1即可:

GRANT CONNECT TO U1;

這樣就可以省略十幾條GRANT語句。

2. 資料庫物件的許可權

在Oracle中,可以授權的資料庫物件包括基本表、檢視、序列、同義詞、儲存過程、函式等,其中最重要的是基本表。

對於基本表Oracle支援三個級別的安全性:表級、行級和列級。

(1)表級安全性

表的建立者或者DBA可以把表級許可權授予其他使用者,表級許可權包括:

ALTER:修改表定義

DELETE:刪除表記錄

INDEX:在表上建索引

INSERT:向表中插入資料記錄

SELECT:查詢表中記錄

UPDATE:修改表中的資料

ALL:上述所有許可權

表級授權使用GRANT和REVOKE語句。

(2)行級安全性

Oracle行級安全性由檢視實現。用檢視定義表的水平子集,限定使用者在檢視上的操作,就為表的行級提供了保護。檢視上的授權與回收與表級完全相同。

例如,只允許使用者U2檢視Student表中資訊系學生的資料,則首先建立資訊系學生的檢視S_IS,然後將該檢視的SELECT許可權授予U2使用者。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/1384/viewspace-264866/,如需轉載,請註明出處,否則將追究法律責任。

相關文章