av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁技術(shù)文章
文章詳情頁

講解Oracle數(shù)據(jù)庫提供的多種安全性措施

瀏覽:148日期:2023-11-28 12:35:04

Oracle的安全措施主要有三個(gè)方面,一是用戶標(biāo)識和鑒定;二是授權(quán)和檢查機(jī)制;三是審計(jì)技術(shù)(是否使用審計(jì)技術(shù)可由用戶靈活選擇);除此之外,Oracle還允許用戶通過觸發(fā)器靈活定義自己的安全性措施。

一、用戶標(biāo)識和鑒定

在Oracle中,最外層的安全性措施是讓用戶標(biāo)識自己的名字,然后由系統(tǒng)進(jìn)行核實(shí)。Oracle允許用戶重復(fù)標(biāo)識三次,如果三次未通過,系統(tǒng)自動退出。

二、授權(quán)與檢查機(jī)制

Oracle的權(quán)限包括系統(tǒng)權(quán)限和數(shù)據(jù)庫對象的權(quán)限兩類,采用非集中的授權(quán)機(jī)制,即DBA負(fù)責(zé)授予與回收系統(tǒng)權(quán)限,每個(gè)用戶授予與回收自己創(chuàng)建的數(shù)據(jù)庫對象的權(quán)限。

Oracle允許重復(fù)授權(quán),即可將某一權(quán)限多次授予同一用戶,系統(tǒng)不會出錯(cuò)。Oracle也允許無效回收,即用戶沒有某種權(quán)限,但回收此權(quán)限的操作仍算成功。

1. 系統(tǒng)權(quán)限

Oracle提供了80多種系統(tǒng)權(quán)限,如創(chuàng)建會話、創(chuàng)建表、創(chuàng)建視圖、創(chuàng)建用戶等。DBA在創(chuàng)建一個(gè)用戶時(shí)需要將其中的一些權(quán)限授予該用戶。

Oracle支持角色的概念。所謂角色就是一組系統(tǒng)權(quán)限的集合,目的在于簡化權(quán)限管理。Oracle除允許DBA定義角色外,還提供了預(yù)定義的角色,如CONNECT,RESOURCE和DBA。

具有CONNECT角色的用戶可以登錄數(shù)據(jù)庫,執(zhí)行數(shù)據(jù)查詢和操縱。即可以執(zhí)行ALTER TABLE,CREATE VIEW,CREATE INDEX,DROP TABLE,DROP VIEW,DROP INDEX,GRANT,REVOKE,INSERT,SELECT,UPDATE,DELETE,AUDIT,NOAUDIT等操作。

RESOURCE角色可以創(chuàng)建表,即執(zhí)行CREATE TABLE操作。創(chuàng)建表的用戶將擁有對該表的所有權(quán)限。

DBA角色可以執(zhí)行某些授權(quán)命令,創(chuàng)建表,對任何表的數(shù)據(jù)進(jìn)行操縱。它涵蓋了前兩種角色,此外還可以執(zhí)行一些管理操作,DBA角色擁有最高級別的權(quán)限。

例如DBA建立一用戶U1后,欲將ALTER TABLE,CREATE VIEW,CREATE INDEX,DROP TABLE,DROP VIEW,DROP INDEX,GRANT,REVOKE,INSERT,SELECT,UPDATE,DELETE,AUDIT,NOAUDIT等系統(tǒng)權(quán)限授予U1,則可以只簡單地將CONNECT角色授予U1即可:

GRANT CONNECT TO U1;

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

2. 數(shù)據(jù)庫對象的權(quán)限

在Oracle中,可以授權(quán)的數(shù)據(jù)庫對象包括基本表、視圖、序列、同義詞、存儲過程、函數(shù)等,其中最重要的是基本表。

對于基本表Oracle支持三個(gè)級別的安全性:表級、行級和列級。

(1)表級安全性

表的創(chuàng)建者或者DBA可以把表級權(quán)限授予其他用戶,表級權(quán)限包括:

ALTER:修改表定義

DELETE:刪除表記錄

INDEX:在表上建索引

INSERT:向表中插入數(shù)據(jù)記錄

SELECT:查找表中記錄

UPDATE:修改表中的數(shù)據(jù)

ALL:上述所有權(quán)限

表級授權(quán)使用GRANT和REVOKE語句。

(2)行級安全性

Oracle行級安全性由視圖實(shí)現(xiàn)。用視圖定義表的水平子集,限定用戶在視圖上的操作,就為表的行級提供了保護(hù)。視圖上的授權(quán)與回收與表級完全相同。

例如,只允許用戶U2查看Student表中信息系學(xué)生的數(shù)據(jù),則首先創(chuàng)建信息系學(xué)生的視圖S_IS,然后將該視圖的SELECT權(quán)限授予U2用戶。

(3)列級安全性

Oracle列級安全性可以由視圖實(shí)現(xiàn),也可以直接在基本表上定義。

用視圖定義表的垂直子集就可以實(shí)現(xiàn)列級安全性,方法與上面類似。

直接在基本表上定義和回收列級權(quán)限也是使用GRANT和REVOKE語句。目前Oracle的列級權(quán)限只有UPDATE,回收列級UPDATE權(quán)限時(shí),Oracle不允許一列一列地回收,只能回收整個(gè)表的UPDATE權(quán)限。例如,

GRANT UPDATE(Sno,Cno)ON SC TO U2;

把對SC表中Sno列和Cno列的UPDATE權(quán)限授予U2用戶。

REVOKE UPDATE ON SC FROM U2;

回收了U2用戶對SC表中Sno列和Cno列的UPDATE權(quán)限。

在Oracle中,表、行、列三級對象自上而下構(gòu)成一個(gè)層次結(jié)構(gòu),其中上一級對象的權(quán)限制約下一級對象的權(quán)限。例如當(dāng)一個(gè)用戶擁有了對某個(gè)表的UPDATE權(quán)限,即相當(dāng)于在表的所有列都擁有了UPDATE權(quán)限。

Oracle對數(shù)據(jù)庫對象的權(quán)限采用分散控制方式,允許具有WITH GRANT OPTION的用戶把相應(yīng)權(quán)限或其子集傳遞授予其他用戶,但不允許循環(huán)授權(quán),即被授權(quán)者不能把權(quán)限再授回給授權(quán)者或其祖先。

Oracle把所有權(quán)限信息記錄在數(shù)據(jù)字典中,當(dāng)用戶進(jìn)行數(shù)據(jù)庫操作時(shí),Oracle首先根據(jù)數(shù)據(jù)字典中的權(quán)限信息,檢查操作的合法性。在Oracle中,安全性檢查是任何數(shù)據(jù)庫操作的第一步。

三、Oracle的審計(jì)技術(shù)

在Oracle中,審計(jì)分為用戶級審計(jì)和系統(tǒng)級審計(jì)。用戶級審計(jì)是任何Oracle用戶可設(shè)置的審計(jì),主要是用戶針對自己創(chuàng)建的數(shù)據(jù)庫表或視圖進(jìn)行審計(jì),記錄所有用戶對這些表或視圖的一切成功和(或)不成功的訪問要求以及各種類型的SQL操作。

系統(tǒng)級審計(jì)只能由DBA設(shè)置,用以監(jiān)測成功或失敗的登錄要求、監(jiān)測GRANT和REVOKE操作以及其他數(shù)據(jù)庫級權(quán)限下的操作。

Oracle的審計(jì)功能很靈活,是否使用審計(jì),對哪些表進(jìn)行審計(jì),對哪些操作進(jìn)行審計(jì)等都可以由用戶選擇。為此,Oracle提供了AUDIT語句設(shè)置審計(jì)功能,NOAUDIT語句取消審計(jì)功能。設(shè)置審計(jì)時(shí),可以詳細(xì)指定對哪些SQL操作進(jìn)行審計(jì)。例如,

對修改SC表結(jié)構(gòu)或數(shù)據(jù)的操作進(jìn)行審計(jì)可使用如下語句:

AUDIE ALTER,UPDATE ON SC;

取消對SC表的一切審計(jì)可使用如下語句:

NOAUDIT ALL ON SC;

在Oracle中,審計(jì)設(shè)置以及審計(jì)內(nèi)容均存放在數(shù)據(jù)字典中。其中審計(jì)設(shè)置記錄在數(shù)據(jù)字典表SYS.TABLES中,審計(jì)內(nèi)容記錄在數(shù)據(jù)字典表SYS.AUDIT_TRAIL中。

四、用戶定義的安全性措施

除了系統(tǒng)級的安全性措施外,Oracle還允許用戶用數(shù)據(jù)庫觸發(fā)器定義特殊的更復(fù)雜的用戶級安全措施。例如,規(guī)定只能在工作時(shí)間內(nèi)更新Student表,可以定義如下觸發(fā)器,其中sysdate為系統(tǒng)當(dāng)前時(shí)間: CREATE OR REPLACE TRIGGER secure_student

BEFORE INSERT OR UPDATE OR DELETE

ON student

BEGIN

IF (TO_CHAR (SYSDATE, 'DY') IN ('SAT', 'SUN'))

OR (TO_NUMBER (SYSDATE, 'HH24') NOT BETWEEN 8 AND 17)

THEN

raise_application_error

(-20506,

'You may only change data during normal business hours.'

);

END IF;

END;

觸發(fā)器一經(jīng)定義便存放在數(shù)據(jù)字典中。用戶每次對Student表執(zhí)行INSERT,UPDATE或DELETE操作時(shí)都會自動觸發(fā)該觸發(fā)器,由系統(tǒng)檢查當(dāng)時(shí)的系統(tǒng)時(shí)間,如果是周六或周日,或者不是8點(diǎn)至17點(diǎn),系統(tǒng)會拒絕執(zhí)行用戶的更新操作,并提示出錯(cuò)信息。

類似的,用戶還可以利用觸發(fā)器進(jìn)一步細(xì)化審計(jì)規(guī)則,使審計(jì)操作的粒度更細(xì)。

綜上所述,Oracle提供了多種安全性措施,提供了多級安全性檢查,其安全性機(jī)制與操作系統(tǒng)的安全機(jī)制彼此獨(dú)立,數(shù)據(jù)字典在Oracle的安全性授權(quán)和檢查以及審計(jì)技術(shù)中起著重要作用。

標(biāo)簽: Oracle 數(shù)據(jù)庫
主站蜘蛛池模板: 亚洲精品麻豆 | 天堂av影院 | 中文在线免费观看 | 成人精品免费视频 | 我要看一级片 | 香蕉久久久 | 亚洲精品一区二区三区在线 | 国产www在线观看 | 伊人干综合 | 亚洲国产精品久久久久久久 | 视频在线一区二区 | av一区二区三区在线观看 | 日产毛片 | 欧美日韩成人在线 | 日韩精品在线一区二区 | 国产精品欧美一区二区 | 看黄网站在线观看 | 欧美日韩亚洲一区二区三区 | 国产在线视频网站 | 天天干天天色 | 亚洲二三区 | 亚洲欧美视频一区 | 青青草手机视频 | 一区二区三区不卡视频 | 午夜激情福利 | 看片黄全部免费 | 九色91popny蝌蚪新疆 | 亚洲精品一区二区三区在线 | 一级黄毛片 | 国v精品久久久网 | 国产裸体永久免费视频网站 | 国产小视频网站 | 黄色一级大片在线免费看国产一 | 久久九九99 | 婷婷久久五月 | 亚洲激情片| 看免费毛片 | 国产精品国产精品国产专区不卡 | 欧美精品在线免费观看 | 色妞网站 | 日本高潮视频 |