新聞中心

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

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

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

          一、必要性

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

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

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

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

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

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

          指允許進行何種具體操作,主要包括:

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

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

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

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

        2.對于表及視圖,其格式為:

          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ù)庫表名和視圖名。

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

          3.對于字段:

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

          4.對于存儲過程:

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

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

          四、角色(role)的使用

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

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

          Create Role role_name1


          其中role_name1表示角色名。

          2.劃分用戶角色:

          即將相關用戶加入到角色中使之成為角色的成員。

          Grant role_name1 to { User-List   Role_List }


          其中Role_List表示角色列表,因為一個角色可以是另外一個或一組角色的成員。

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

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

          4.激活角色:

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

          Set Role role_name1


          五、結(jié)束語

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


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


        關鍵詞: SQLServer

        評論


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

        關閉
        主站蜘蛛池模板: 乃东县| 门源| 资兴市| 乌苏市| 鄂托克旗| 华池县| 紫金县| 长宁县| 新竹县| 平顺县| 瑞金市| 龙州县| 荣昌县| 湟中县| 精河县| 陇川县| 遵义市| 益阳市| 正阳县| 蒙城县| 通辽市| 大连市| 民乐县| 平塘县| 沂源县| 时尚| 吉安市| 沧源| 潍坊市| 丰原市| 卢氏县| 贵南县| 象山县| 梓潼县| 景东| 大城县| 彰武县| 勃利县| 嵊州市| 道孚县| 遵义县|