如何設定資料庫的許可權

2021-06-18 17:05:28 字數 3005 閱讀 7715

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.

右擊你要設定的資料夾,選擇共享和安全-安全,就可以給使用者設定許可權了,只勾選“讀取”選項即可 如果在開始找不到管理工具,可以進去控制面板,可以找到

設定資料庫表之間的關係有什麼用資料庫建立表間關聯有什麼作用

主鍵用來唯一標識表中的記錄 唯一鍵類似於主鍵,在整個表中只包含唯一值的欄位上建立唯一鍵 唯一鍵可確保整個表中的唯一性。主鍵總是唯一的,或者至少是唯一鍵 然而,主鍵也用於定義表之間的關係,唯一鍵不用於定義表之間的關係。外來鍵是在子表中建立的主鍵的副本,用於組成表間關係的連結的對立面 建立關聯式資料庫關...

discuz論壇資料庫設定,Discuz,論壇的資料庫配置檔案是哪個

資料庫編碼問題或者瀏覽器編碼問題。請修改成一致 gbk或者utf8 discuz,論壇的資料庫配置檔案是哪個 1 首先,利用discuz管理許可權賬戶登入discuz論壇管理後臺。2 然後,進入管理後臺的管理中心。3 接著,依次點選 站長 資料庫 並提交資料庫備份申請,備份型別選擇預設就好了。4 然...

Oracle資料庫如何匯出

資料匯出具體如下 將資料庫test完全匯出,使用者名稱system 密碼manager 匯出到d daochu.dmp中。將資料庫中system使用者與sys使用者的表匯出。將資料庫中的表table1 table2匯出。將資料庫中的表table1中的欄位filed1以 00 打頭的資料匯出。將d d...