自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

數(shù)據(jù)庫(kù) Oracle
安全問(wèn)題是很多數(shù)據(jù)庫(kù)公司十分關(guān)注的問(wèn)題,當(dāng)然Oracle數(shù)據(jù)庫(kù)也不例外,數(shù)據(jù)庫(kù)的安全一直都是人們關(guān)注的重心所在,本文將會(huì)為大家講解Oracle數(shù)據(jù)庫(kù)的安全措施。

導(dǎo)讀:Oracle數(shù)據(jù)庫(kù)的安全措施主要有三個(gè)方面,一是用戶標(biāo)識(shí)和鑒定;二是授權(quán)和檢查機(jī)制;三是審計(jì)技術(shù)(是否使用審計(jì)技術(shù)可由用戶靈活選擇);除此之外,Oracle還允許用戶通過(guò)觸發(fā)器靈活定義自己的安全性措施。下文中將會(huì)為大家做更為詳細(xì)的解析。

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

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

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

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

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

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

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

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

  具有CONNECT角色的用戶可以登錄數(shù)據(jù)庫(kù),執(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)建表的用戶將擁有對(duì)該表的所有權(quán)限。

  DBA角色可以執(zhí)行某些授權(quán)命令,創(chuàng)建表,對(duì)任何表的數(shù)據(jù)進(jìn)行操縱。它涵蓋了前兩種角色,此外還可以執(zhí)行一些管理操作,DBA角色擁有最高級(jí)別的權(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,則可以只簡(jiǎn)單地將CONNECT角色授予U1即可:

  GRANT CONNECT TO U1;

  這樣就可以省略十幾條GRANT語(yǔ)句。

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

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

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

 ?。?)表級(jí)安全性

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

  ALTER:修改表定義
  DELETE:刪除表記錄
  INDEX:在表上建索引
  INSERT:向表中插入數(shù)據(jù)記錄
  SELECT:查找表中記錄
  UPDATE:修改表中的數(shù)據(jù)
  ALL:上述所有權(quán)限

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

  (2)行級(jí)安全性

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

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

  (3)列級(jí)安全性

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

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

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

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

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

  REVOKE UPDATE ON SC FROM U2;

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

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

  Oracle對(duì)數(shù)據(jù)庫(kù)對(duì)象的權(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ù)庫(kù)操作時(shí),Oracle首先根據(jù)數(shù)據(jù)字典中的權(quán)限信息,檢查操作的合法性。在Oracle中,安全性檢查是任何數(shù)據(jù)庫(kù)操作的第一步。

#p#

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

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

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

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

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

  AUDIE ALTER,UPDATE ON SC;

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

  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)級(jí)的安全性措施外,Oracle還允許用戶用數(shù)據(jù)庫(kù)觸發(fā)器定義特殊的更復(fù)雜的用戶級(jí)安全措施。例如,規(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ù)字典中。用戶每次對(duì)Student表執(zhí)行INSERT,UPDATE或DELETE操作時(shí)都會(huì)自動(dòng)觸發(fā)該觸發(fā)器,由系統(tǒng)檢查當(dāng)時(shí)的系統(tǒng)時(shí)間,如果是周六或周日,或者不是8點(diǎn)至17點(diǎn),系統(tǒng)會(huì)拒絕執(zhí)行用戶的更新操作,并提示出錯(cuò)信息。

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

  綜上所述,Oracle提供了多種安全性措施,提供了多級(jí)安全性檢查,其安全性機(jī)制與操作系統(tǒng)的安全機(jī)制彼此獨(dú)立,數(shù)據(jù)字典在Oracle的安全性授權(quán)和檢查以及審計(jì)技術(shù)中起著重要作用。安全技術(shù)是在不斷更新著,一代比一代技術(shù)更為強(qiáng)大,如果大家有更好的安全維護(hù)方法,隨時(shí)歡迎大家與我分享。

【編輯推薦】

  1. Oracle數(shù)據(jù)庫(kù)自動(dòng)增長(zhǎng)列的實(shí)現(xiàn)過(guò)程
  2. 輕松解決Oracle數(shù)據(jù)庫(kù)的服務(wù)啟動(dòng)問(wèn)題
  3. 數(shù)據(jù)訪問(wèn)由SQL Server遷移向Oracle數(shù)據(jù)庫(kù)的問(wèn)題整理
責(zé)任編輯:迎迎 來(lái)源: 希賽網(wǎng)
相關(guān)推薦

2009-04-13 10:06:58

Oracle安全管理

2011-03-25 09:46:16

Informix數(shù)據(jù)庫(kù)安全性安全審計(jì)

2009-11-20 16:23:58

Oracle數(shù)據(jù)庫(kù)安全

2011-05-26 09:46:21

Oracle數(shù)據(jù)庫(kù)安全

2011-05-25 14:11:50

Oracle安全

2010-05-07 17:56:10

Oracle數(shù)據(jù)庫(kù)安全

2011-01-19 11:07:43

2010-04-14 17:19:51

Oracle數(shù)據(jù)庫(kù)

2011-05-25 10:37:03

Oracle數(shù)據(jù)庫(kù)安全

2009-06-25 09:46:04

2010-04-29 15:33:12

Oracle數(shù)據(jù)庫(kù)

2011-02-28 10:57:56

2009-12-29 17:40:33

2011-03-31 09:40:46

2009-10-23 10:50:04

CLR安全性

2015-03-27 13:02:17

Azure SQL D微軟云數(shù)據(jù)庫(kù)

2015-05-05 15:53:01

2021-07-21 15:05:06

數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)安全技術(shù)

2010-05-17 16:26:36

IIS安全

2012-01-05 09:45:31

微軟云數(shù)據(jù)庫(kù)SQL Azure
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)