許興義 王國強 陶明慧
(中國人民解放軍西藏77635部隊,西藏 錯那 856700)
數據庫管理系統設計首先要考慮的一個因素是系統的安全性。安全性措施旨在保護數據,以免遭非法窺探或蓄意破壞。
目前很多MIS系統(管理信息系統)采用的是Access數據庫,尤其是部隊MIS多涉及到軍事命令、軍事情報等涉密信息,因此,數據庫安全性顯得尤為重要。為此,本文對Access數據庫安全研討如下。
Access數據庫系統的安全機制將安全性管理分為三個階段[1],如圖1所示。

圖1 Access數據庫安全機制
確認階段,檢查用戶的登錄帳號以及用戶連接數據庫的密碼是否正確;
許可階段,檢查進入數據庫的用戶名是否正確以及此用戶具有何種用戶權限;
跟蹤用戶活動階段,通過加入跟蹤審計模塊,以備安全性分析。
打開的數據庫設置密碼,對于在某個用戶組中共享的數據庫或是單機上的數據庫,設置密碼通常就足夠了。如果要復制數據庫,則不要使用數據庫密碼。如果設置了密碼,復制的數據庫將不能同步。
這個方法是安全的,但只應用于打開數據庫。在數據庫打開后,數據庫中的所有對象對用戶都將是可用的。
設置數據庫安全最靈活最廣泛的方法是設置用戶級安全管理(包括用戶管理和存取控制)。
用戶管理要求用戶在啟動Access時確認自己的身份并鍵入密碼。存取控制為用戶授予權限,規定他們如何使用數據庫中的對象。例如,普通用戶只允許查看包含武裝巡邏數據的表,而不能訪問“敵情處置表”。系統管理員則對數據庫中的所有對象都具有完全的權限。
對于邊防武裝巡邏管理信息系統,跟蹤的主要任務是對系統或用戶使用系統的情況進行記錄,以便系統管理員進行審計和安全性分析,從而保證數據的安全。
添加數據庫口令保護數據庫,用“獨占”方式打開數據庫,單擊“工具”菜單“安全”子菜單上的“設置數據庫密碼”命令,即可在密碼框中鍵入自己的口令。下一次打開數據庫時,將顯示要求輸入口令的對話框。
注意:如果已定義數據庫的用戶級安全對數據庫不具有管理員權限,就不能設置數據庫口令。而且,定義的數據庫口令是添加到用戶級安全上的。
設置用戶級安全,Access對象包括:表、查詢、窗體、報表、宏和模塊。對其所有對象均能設置用戶級的許可權限。
設置用戶級安全的流程如下:
①要求用戶登錄到Microsoft Access:啟動Microsoft Access,打開數據庫,在“更改登錄密碼”選項卡上鍵入新口令。
②創建和刪除 “管理員”帳號:“工具”菜單“安全”子菜單中的“用戶與組帳號”命令可用來增加或刪除用戶帳號,并改變其口令。
③改變數據庫及其對象的所有者(使用“用戶級安全向導”):新建一個數據庫并將所有的對象導入其中,然后通過取消用戶組對新數據庫對象的所有權限,為選定對象類型設置安全,然后加密數據庫。
④創建、設置用戶的權限并設置登錄口令:先為組指定權限,然后通過將用戶添加到組中或從組中刪除的方式來更改單個用戶的權限。
加密或解密數據庫,啟動Microsoft Access→單擊“工具”菜單“安全”子菜單中的“加密/解密數據庫”→指定要加密或解密的數據庫→指定加密或解密之后的數據庫名稱、驅動器及文件夾。注意:在數據庫打開時不能對其進行加密或解密。在多用戶環境下,若其他用戶打開了數據庫,也無法執行加密或解密操作;如果使用原有的數據庫名稱、驅動器和文件夾,在加密或解密成功后,Access會自動將原有的數據庫替換為加密或解密后的版本,但若出現錯誤,Access將保留原有的數據庫文件。
2.2.1 創建和連接新的Access工作組信息文件
Access數據庫的Jet引擎就是一個數據庫管理系統,其作用是在用戶和系統信息庫中檢索和保存數據,也叫數據管理部件,利用它可以創建其它數據訪問系統,例如VB及Microsoft Jet。而Microsoft Access數據庫的用戶級安全機制是通過一個系統數據庫(System.mdw)來管理的。此數據庫一般在“C:WindowsSystem”的路徑下,而用戶名、用戶密碼、組名、用戶權限均在此數據庫中保存,一般的軟件不能打開和修改它。
安裝Access2003時創建的工作組信息文件所定義的默認工作組信息文件,這些信息通常很容易確定,使不具有授權的用戶也很可能創建該工作組信息文件的其它版本,并獲得該工作組信息文件中定義的工作組管理員帳號(管理員組的成員)的各種不可撤消的權限。要預防這一點,應通過Microsoft Access Workgroup Administrator來新建一個工作組信息文件并為其指定工作組ID(WID)。新建Access工作組信息文件的步驟如下:
啟動“C:WINDOWSSYSTEMWrkgadm.exe”(工作組管理員)。 單擊“工作組管理員”對話框中的“創建”按鈕,鍵入相應的名稱和組織名。在“工作組所有權信息”對話框中鍵入一個最多為20個字符、數字和字母組合。在創建了新的Access工作組信息文件后,就可以單擊“聯接”按鈕,用瀏覽的方式找到新建的Access工作組信息文件后,單擊“確定”退出即可。
2.2.2 用戶控制只有Access數據庫的系統管理員才能操作用戶及為其分配管理權限。用戶控制操作包括對用戶和更改登錄系統數據庫密碼等兩部分管理。
用戶管理:對用戶的管理一般包括添加/刪除用戶、修改/刪除用戶密碼等控制。“添加/刪除用戶”是系統管理員向系統數據庫添加合法用戶(包括用戶名和密碼)/刪除已存在的合法用戶;“修改/刪除用戶密碼”是系統管理員修改/刪除合法用戶的密碼。
添加用戶,模塊主要負責添加數據庫的合法用戶,并依據合法用戶的姓名及密碼轉換成一個唯一的PID值存入系統數據庫中。注意:密碼最大長度是14位。創建新用戶并添加到工作組中去的代碼如下:

刪除用戶,模塊主要負責從系統數據庫中刪除用戶的代碼如下:


修改用戶密碼,實現系統管理員修改用戶密碼操作的主要代碼如下:刪除用戶密碼,實現系統管理員刪除用戶密碼操作的主要代碼:Change Password sOldPassword,″″′設置用戶的新密碼為空字符更改登錄系統數據庫密碼,實現更改登錄系統數據庫密碼的主要代碼:
DBEngine.Workspaces(0).Users(″用戶名″)NewPassword 舊密碼,新密碼
2.2.3 用戶的權限控制
用戶的權限控制包括為用戶授予權限和更改用戶的所有權限兩部分。
為用戶授予權限,實現過程是把界面上選定的權限合成一個權限代碼,并將其保存于系統數據庫中:


更改用戶的所有權限:

2.2.4 加密、解密數據庫
DBEngine.CompactData(當前數據庫,新數據庫,加密或解密)
2.2.5 修復數據庫
DBEngine.RepairDatabase(數據庫的名稱)
分為系統級審計(對系統管理員的操作和具有不同的數據庫級權限的用戶設置)、表級審計(對每個基表都可以指定不同級別的審計,由表級審計設置語句指定對某一特定表的哪些操作應予以審計)、用戶級審計(對系統的任一用戶均可設置審計,審計一旦設置,該用戶在系統內的任何操作均被記錄在審計表中)。審計記錄了基表的使用、刪除,數據庫管理員和數據庫安全員的操作。對于每一個記錄下來的事件,審計記錄標識出事件發生的日期和時間,操作的用戶,事件類型及事件是成功還是失敗,請求的來源、客體名稱和安全級。值得注意的是:跟蹤與審計的信息只能由數據庫審計員獨立使用。
[1]劉獨玉.Access數據庫系統安全性的設計與實現[J].計算機應用,2001,21(8):50-52.
[2]羅彬,劉獨玉.用VB6.0設計Access數據庫的安全性[J].四川輕化工學院學報,2000,13(2):64-67.
[3]何建國.Visual Basic 5.0和 MicrosoftAccess97數據庫的安全性接口[J].計算機工程,2000,26(1):104.
[4]金尊和.軟件工程實踐導論:有關方法、設計、實現、管理之三十六計[M].清華大學出版社,2005.