1樓:匿名使用者
一、必要性
隨著近年來資料庫技術的深入發展,以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.對於資料庫,其格式為:
revoke from
revoke from
預設情況下,建立資料庫的使用者就是資料庫管理員(dba),除其本身和informix使用者外,其它使用者不對該資料庫擁有任何許可權,因此也就不能進行任何形式的訪問。資料庫管理員可根據其他使用者的業務分工、操作範圍授予或撤消dba、resource、connect三種不同的許可權。
2.對於表及檢視,其格式為:
revoke tab-pri on [ tab_name | view_name ] from
revoke tab-pri on [ tab_name | view_name ] from
其中tab_pri表示select、update、delete等操作許可權,tab_name、 view_name分別代表資料庫表名和檢視名。
預設情況下,新建的資料庫表和檢視對能夠訪問該資料庫的使用者賦予了除alter外的所有許可權,有時這是比較危險的,比如對普通查詢使用者,應該有針對性地對許可權重新定義。此外,對一些重要的表或檢視,為防止敏感資訊洩露,也應該重新授權。具體做法是:
先用revoke命令撤消原來所有的許可權,再用grant授予新的許可權。
3.對於欄位:
欄位級許可權的授予和撤消同表級的命令方式基本一致,所不同的僅在於必須把賦予許可權的欄位名列在操作許可權如select、insert、update等之後,通過這樣細化可以實施更有效的資料保護。
4.對於儲存過程:
儲存過程由sql語句編寫,存放於資料庫中,常與觸發器配合,可以對資料進行批量處理,使用非常方便。但如果授權不嚴格,將導致非法修改現有資料。其許可權設定格式為:
grant execute on proc_name to ;
revoke execute on proc_name from
其中proc_name表示儲存過程名。
四、角色(role)的使用
在資料庫使用者的管理中,我們可以根據使用者對資料庫資料的需要情況把使用者分為幾組,每一組使用者可以作為一個"角色",每個使用者就是角色的成員。通過使用角色,資料庫系統更容易進行安全性管理,因為一旦某個使用者屬於某一個角色,對許可權的授予和撤消只需針對角色便可。具體使用方法為:
1.建立角色:
create role role_name1
其中role_name1表示角色名。
2.劃分使用者角色:
即將相關使用者加入到角色中使之成為角色的成員。
grant role_name1 to
其中role_list表示角色列表,因為一個角色可以是另外一個或一組角色的成員。
3.授權角色許可權:
同授權使用者許可權的方法相同,但只能對錶級和欄位級許可權有效,不能授予資料庫級許可權給一個角色。
4.啟用角色:
執行以下語句,使以上定義的角色成為可用狀態:
set role role_name1
五、結束語
以internet技術為代表的網路業務的迅猛增長為資料庫應用開闢了新的發展空間,同時也對資料庫的安全性管理提出了更高的要求,網路的開放性導致非法存取常有發生,因而深刻領會和理解資料庫許可權的具體設定方法,結合自身實際應用,制定出一套完整的安全保護策略具有重要意義。informix dynamic server對以上控制語句的使用除角色外,嚴格執行sql ansi 標準,因此對建立在nt平臺上的ms sql server同樣有效
&.мo.о旒 2007-12-19 17:29
您覺得這個答案好不好?
好(0)不好(0) 相關問題
2樓:匿名使用者
怎麼設定sqlite不只讀
1.開始-管理工具-本地安全策略-安全設定-本地策略-安全選項(網路訪問:本地帳戶的共享和安全模式),雙擊-更改設定為經典-本地使用者使用自己的身份驗證 2.
右擊你要設定的資料夾,選擇共享和安全-安全,就可以給使用者設定許可權了,只勾選“讀取”選項即可 如果在開始找不到管理工具,可以進去控制面板,可以找到
如何改mysql資料庫資料庫密碼
文件類共創空間 修改mysql是需要有mysql裡的root許可權的,下面介紹幾種修改mysql資料庫密碼的方法 方法一使用phpmyadmin,這是最簡單的了,修改mysql庫的user表,不過別忘了使用password函式。方法二使用mysqladmin,這是前面宣告的一個特例。mysqladm...
同access資料庫如何設定多人使用
一點設計演示 1.前提是每個使用者都不能使用獨佔的方式開啟。2.共享資料庫 mdb 註釋 本主題中的資訊僅適用於 microsoft access 資料庫 mdb 3.若要從另一臺計算機上訪問共享的 microsoft access 資料庫,另一臺計算機上必 須具備下列條件之一 access 的本地...
如何把資料庫中NULL值設定為,如何把資料庫中NULL值設定為
鯉魚 sql中,設定語句 if 欄位名 is null set 欄位名 0 設定表欄位 update tablename set 欄位名 0 where 欄位名 is null update 表 set 欄位 0 where 欄位 is null 表中對應欄位預設值設定成0 就好了 直接用updat...