新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 關(guān)于數(shù)據(jù)庫(kù)權(quán)限設(shè)置深入剖析

關(guān)于數(shù)據(jù)庫(kù)權(quán)限設(shè)置深入剖析

作者: 時(shí)間:2007-05-16 來源:網(wǎng)絡(luò) 收藏
隨著近年來數(shù)據(jù)庫(kù)技術(shù)的深入發(fā)展,以Unix平臺(tái)為代表的Informix Dynamic Server和以NT平臺(tái)為代表的MS SQL Server得到了廣泛的應(yīng)用。在一個(gè)公共的環(huán)境中,存在大量的用戶操作,有數(shù)據(jù)庫(kù)管理員,主要做數(shù)據(jù)管理維護(hù)工作,也有普通用戶,做一定授權(quán)下的數(shù)據(jù)修改和數(shù)據(jù)查詢。我們知道,每個(gè)數(shù)據(jù)庫(kù)服務(wù)器上可建立多個(gè)不同類別的數(shù)據(jù)庫(kù),而每個(gè)數(shù)據(jù)庫(kù)中也可以生成多個(gè)存儲(chǔ)過程、表、視圖等。如何保證數(shù)據(jù)的安全可靠,防止非法存取所造成的破壞和數(shù)據(jù)泄露,如何進(jìn)行權(quán)限的劃分和設(shè)置,這是安全管理的重點(diǎn),也是數(shù)據(jù)庫(kù)可靠運(yùn)行的保證。本文以Informix Dynamic Server為例做詳細(xì)說明。

  一、必要性

  隨著近年來數(shù)據(jù)庫(kù)技術(shù)的深入發(fā)展,以Unix平臺(tái)為代表的Informix Dynamic Server和以NT平臺(tái)為代表的MS SQL Server得到了廣泛的應(yīng)用。在一個(gè)公共的環(huán)境中,存在大量的用戶操作,有數(shù)據(jù)庫(kù)管理員,主要做數(shù)據(jù)管理維護(hù)工作,也有普通用戶,做一定授權(quán)下的數(shù)據(jù)修改和數(shù)據(jù)查詢。我們知道,每個(gè)數(shù)據(jù)庫(kù)服務(wù)器上可建立多個(gè)不同類別的數(shù)據(jù)庫(kù),而每個(gè)數(shù)據(jù)庫(kù)中也可以生成多個(gè)存儲(chǔ)過程、表、視圖等。如何保證數(shù)據(jù)的安全可靠,防止非法存取所造成的破壞和數(shù)據(jù)泄露,如何進(jìn)行權(quán)限的劃分和設(shè)置,這是安全管理的重點(diǎn),也是數(shù)據(jù)庫(kù)可靠運(yùn)行的保證。本文以Informix Dynamic Server為例做詳細(xì)說明。

  二、權(quán)限的劃分

  Informix Dynamic Server使用了三級(jí)權(quán)限來保證數(shù)據(jù)的安全性,它們分別是數(shù)據(jù)庫(kù)級(jí)權(quán)限、表級(jí)權(quán)限和字段級(jí)權(quán)限,具體為:

  1.數(shù)據(jù)庫(kù)級(jí)權(quán)限

  包括Connect、Resource、DBA三種類別,其中:

  Connect:最低級(jí),僅允許用戶訪問數(shù)據(jù)庫(kù)中的表和索引,但不能創(chuàng)建和刪除它們;
  Resource: 建立在Connect之上,允許用戶在數(shù)據(jù)庫(kù)中創(chuàng)建、刪除表和索引;
  DBA:即數(shù)據(jù)庫(kù)管理員,擁有數(shù)據(jù)庫(kù)管理的全部權(quán)限,包括訪問數(shù)據(jù)庫(kù)表、創(chuàng)建和刪除索引、修改表結(jié)構(gòu)、授予數(shù)據(jù)庫(kù)權(quán)限給其他用戶等。
  2.表/字段(視圖)級(jí)權(quán)限

  指允許進(jìn)行何種具體操作,主要包括:

  Select: 從表或字段中檢索信息;
  Update: 修改指定字段的值;
  Insert: 向數(shù)據(jù)庫(kù)表中添加記錄;
  Delete: 從數(shù)據(jù)庫(kù)表中刪除記錄;
  Index: 為一個(gè)數(shù)據(jù)庫(kù)表創(chuàng)建索引;
  Alter: 增加、刪除數(shù)據(jù)庫(kù)表中的字段,或修改字段的數(shù)據(jù)類型;
  All: 以上所有權(quán)限。
  三、權(quán)限的設(shè)置

  Informix Dynamic Server通過一系列SQL控制語(yǔ)句來實(shí)施對(duì)用戶權(quán)限的設(shè)置,使得不同的用戶只能在各自限定的范圍內(nèi)存取數(shù)據(jù)。以下命令格式中Grant表示授予權(quán)限,Revoke表示撤消權(quán)限,User-List指用戶名列表,多個(gè)用戶以逗號(hào)(,)分隔,對(duì)大多數(shù)數(shù)據(jù)庫(kù)系統(tǒng)而言,PUBLIC代表所有用戶。

  1.對(duì)于數(shù)據(jù)庫(kù),其格式為:

  Grant { DBA   Resource   Connect } to { PUBLIC   User-List };
  Revoke { DBA   Resource   Connect } from { PUBLIC   User-List }
  缺省情況下,建立數(shù)據(jù)庫(kù)的用戶就是數(shù)據(jù)庫(kù)管理員(DBA),除其本身和Informix用戶外,其它用戶不對(duì)該數(shù)據(jù)庫(kù)擁有任何權(quán)限,因此也就不能進(jìn)行任何形式的訪問。數(shù)據(jù)庫(kù)管理員可根據(jù)其他用戶的業(yè)務(wù)分工、操作范圍授予或撤消DBA、Resource、Connect三種不同的權(quán)限。

2.對(duì)于表及視圖,其格式為:

  Grant TAB-PRI on [ tab_name   view_name ] to { PUBLIC   User-List };
  Revoke TAB-PRI on [ tab_name   view_name ] from { PUBLIC   User-List }
  其中TAB_PRI表示select、update、delete等操作權(quán)限,tab_name、 view_name分別代表數(shù)據(jù)庫(kù)表名和視圖名。

  缺省情況下,新建的數(shù)據(jù)庫(kù)表和視圖對(duì)能夠訪問該數(shù)據(jù)庫(kù)的用戶賦予了除alter外的所有權(quán)限,有時(shí)這是比較危險(xiǎn)的,比如對(duì)普通查詢用戶,應(yīng)該有針對(duì)性地對(duì)權(quán)限重新定義。此外,對(duì)一些重要的表或視圖,為防止敏感信息泄露,也應(yīng)該重新授權(quán)。具體做法是:先用Revoke命令撤消原來所有的權(quán)限,再用Grant授予新的權(quán)限。

  3.對(duì)于字段:

  字段級(jí)權(quán)限的授予和撤消同表級(jí)的命令方式基本一致,所不同的僅在于必須把賦予權(quán)限的字段名列在操作權(quán)限如select、insert、update等之后,通過這樣細(xì)化可以實(shí)施更有效的數(shù)據(jù)保護(hù)。

  4.對(duì)于存儲(chǔ)過程:

  存儲(chǔ)過程由SQL語(yǔ)句編寫,存放于數(shù)據(jù)庫(kù)中,常與觸發(fā)器配合,可以對(duì)數(shù)據(jù)進(jìn)行批量處理,使用非常方便。但如果授權(quán)不嚴(yán)格,將導(dǎo)致非法修改現(xiàn)有數(shù)據(jù)。其權(quán)限設(shè)置格式為:

  Grant Execute on proc_name to { PUBLIC   User-List };
  Revoke Execute on proc_name from { PUBLIC   User-List }
  其中proc_name表示存儲(chǔ)過程名。

  四、角色(role)的使用

  在數(shù)據(jù)庫(kù)用戶的管理中,我們可以根據(jù)用戶對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)的需要情況把用戶分為幾組,每一組用戶可以作為一個(gè)角色,每個(gè)用戶就是角色的成員。通過使用角色,數(shù)據(jù)庫(kù)系統(tǒng)更容易進(jìn)行安全性管理,因?yàn)橐坏┠硞€(gè)用戶屬于某一個(gè)角色,對(duì)權(quán)限的授予和撤消只需針對(duì)角色便可。具體使用方法為:

  1.創(chuàng)建角色:

  Create Role role_name1


  其中role_name1表示角色名。

  2.劃分用戶角色:

  即將相關(guān)用戶加入到角色中使之成為角色的成員。

  Grant role_name1 to { User-List   Role_List }


  其中Role_List表示角色列表,因?yàn)橐粋€(gè)角色可以是另外一個(gè)或一組角色的成員。

  3.授權(quán)角色權(quán)限:

  同授權(quán)用戶權(quán)限的方法相同,但只能對(duì)表級(jí)和字段級(jí)權(quán)限有效,不能授予數(shù)據(jù)庫(kù)級(jí)權(quán)限給一個(gè)角色。

  4.激活角色:

  執(zhí)行以下語(yǔ)句,使以上定義的角色成為可用狀態(tài):

  Set Role role_name1


  五、結(jié)束語(yǔ)

  以Internet技術(shù)為代表的網(wǎng)絡(luò)業(yè)務(wù)的迅猛增長(zhǎng)為數(shù)據(jù)庫(kù)應(yīng)用開辟了新的發(fā)展空間,同時(shí)也對(duì)數(shù)據(jù)庫(kù)的安全性管理提出了更高的要求,網(wǎng)絡(luò)的開放性導(dǎo)致非法存取常有發(fā)生,因而深刻領(lǐng)會(huì)和理解數(shù)據(jù)庫(kù)權(quán)限的具體設(shè)置方法,結(jié)合自身實(shí)際應(yīng)用,制定出一套完整的安全保護(hù)策略具有重要意義。Informix Dynamic Server對(duì)以上控制語(yǔ)句的使用除角色外,嚴(yán)格執(zhí)行SQL ANSI 標(biāo)準(zhǔn),因此對(duì)建立在NT平臺(tái)上的MS SQL Server同樣有效。


CSDN聲明:此消息系轉(zhuǎn)載自CSDN合作媒體,其中細(xì)節(jié)未經(jīng)CSDN證實(shí),特此聲明


關(guān)鍵詞: SQLServer

評(píng)論


技術(shù)專區(qū)

關(guān)閉