国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

講解Informix Dynamic Server的權限設置

2024-07-21 02:44:25
字體:
來源:轉載
供稿:網友
一、必要性

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

二、權限的劃分

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

1.數據庫級權限

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

Connect:最低級,僅允許用戶訪問數據庫中的表和索引,但不能創建和刪除它們;

Resource: 建立在Connect之上,允許用戶在數據庫中創建、刪除表和索引;

DBA:即數據庫管理員,擁有數據庫管理的全部權限,包括訪問數據庫表、創建和刪除索引、修改表結構、授予數據庫權限給其他用戶等。

2.表/字段(視圖)級權限

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

Select: 從表或字段中檢索信息;

Update: 修改指定字段的值;

Insert: 向數據庫表中添加記錄;

Delete: 從數據庫表中刪除記錄;

Index: 為一個數據庫表創建索引;

Alter: 增加、刪除數據庫表中的字段,或修改字段的數據類型;

All: 以上所有權限。

三、權限的設置

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

1.對于數據庫,其格式為:

Grant { DBA   Resource   Connect } to { PUBLIC   User-List };

Revoke { DBA   Resource   Connect } from { PUBLIC   User-List }

缺省情況下,建立數據庫的用戶就是數據庫管理員(DBA),除其本身和Informix用戶外,其它用戶不對該數據庫擁有任何權限,因此也就不能進行任何形式的訪問。數據庫管理員可根據其他用戶的業務分工、操作范圍授予或撤消DBA、Resource、Connect三種不同的權限。

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等操作權限,tab_name、 view_name分別代表數據庫表名和視圖名。

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

3.對于字段:

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

4.對于存儲過程:

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

Grant Execute on proc_name to { PUBLIC   User-List };

Revoke Execute on proc_name from { PUBLIC   User-List }

其中proc_name表示存儲過程名。

四、角色(role)的使用

  

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

1.創建角色:

Create Role role_name1

其中role_name1表示角色名。

2.劃分用戶角色:

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

Grant role_name1 to { User-List   Role_List }

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

3.授權角色權限:

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

4.激活角色:

執行以下語句,使以上定義的角色成為可用狀態:

Set Role role_name1

五、結束語

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


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 卓尼县| 拉孜县| 尉氏县| 陆川县| 房产| 山丹县| 松阳县| 怀宁县| 合水县| 丰顺县| 白河县| 永清县| 兰考县| 海南省| 济源市| 霸州市| 西丰县| 邹城市| 扎赉特旗| 霍城县| 九江县| 晴隆县| 临泉县| 温宿县| 芜湖县| 辽宁省| 古蔺县| 洛扎县| 巩义市| 微山县| 平原县| 双鸭山市| 澄迈县| 乌拉特中旗| 呼图壁县| 平阳县| 田东县| 吉水县| 商水县| 望谟县| 玉龙|