在早期版本的 Microsoft® Access(Microsoft Access 2000 以前)中,有關安全性的知識有時被認為是無法為任何人所掌握和應用的。您需要按順序執行很多步驟,一旦遺漏某個步驟或者顛倒了順序就會帶來災難性的後果。隨著 Microsoft Access for Microsoft Windows® 95 的 Security Wizard 出現,以及 Microsoft Access 2000 的 Security Wizard 的不斷改進,在 Access 中實現安全性已變得非常簡單。但是,即使有了這些幫助,您也必須清楚自己的安全選項,並掌握在數據庫中保護數據和對象的操作。否則,輕者會帶來數據安全隱患,重者會將您鎖在自己的數據庫之外。
有很多方法可以保護您的 Access 數據庫以及其中包含的數據。在本文中,我們將討論用於保護組成數據庫的各個對象(包含數據)、包含諸如窗體和報表等元素的對象以及代碼(可能是數據庫中最有價值的部分)的方法。本文中討論的安全技巧只適用於 Microsoft Access 數據庫 (.mdb) 文件。
您應該知道,有很多工具和第三方實用程序可以用於探測任何類型的數據庫的密碼,以及來自任何工作組信息文件的用戶名和密碼(本文後面將詳細介紹工作組信息文件)。如果需要保護敏感數據免受非法訪問,最好的安全措施就是使用計算機操作系統提供的文件級安全性和文件共享安全性。文件級安全性涉及在數據文件上設置權限。文件共享安全性涉及限制對數據文件存儲位置的訪問。文件共享安全性的一個示例是在存儲數據文件的文件夾(位於本地計算機或網絡服務器上)上設置用戶權限。為此,可以將數據拆分到多個文件中,在這些文件上設置用戶權限,再將這些文件放置到受保護的文件共享空間中。然後可以從具有安全設置的 Access 數據庫鏈接到這些文件。
以下各節介紹了幾種保護 Access 數據庫的方法。
最簡單(也是安全性最低)的保護方法是對數據庫進行加密。加密數據庫就是將數據庫文件壓縮,從而使某些實用程序(如字處理器)不能解讀這些文件。加密一個不具有安全設置的數據庫並不能保證數據庫的安全,因為任何人都可以打開數據庫並完全訪問數據庫中的所有對象。有關對數據庫進行安全設置的詳細內容,請參閱本文後面的使用 Security Wizard 設置 Access 數據庫的安全性。
加密可以避免在以電子方式傳輸數據庫或者將其存儲在軟盤、磁帶或光盤上時,其他用戶偶然訪問數據庫中的信息。然而 Jet(Access 使用的數據庫引擎)使用的加密方法非常薄弱,因此絕不能用於保護敏感數據。“加密/解密數據庫”命令位於“工具”菜單的“安全”子菜單中。解密數據庫是對加密過程的逆運算。
另一種相對簡單的保護方案是使用自定義界面代替 Access 標准界面。與加密一樣,它也不能保護數據庫中的對象和敏感數據的安全。通過選擇“工具”菜單中的“啟動”選項,您可以指定自定義的啟動窗體、菜單,甚至自定義的標題和圖標。還可以選擇取消 Database 窗口,從而對缺乏相應技術的應用程序用戶隱藏這些對象。“啟動”對話框的各項功能也可以通過編程實現。有關如何從“啟動”對話框設置啟動選項的詳細信息,請參閱 Access 幫助中的“關於啟動選項”。有關如何通過編程設置啟動選項的詳細信息,請參閱 Access 幫助 Microsoft Visual Basic® 編輯器的“設置‘啟動’選項和編碼中的選項”。
您可以在數據庫上設置密碼,從而要求用戶在訪問數據和數據庫對象時輸入密碼。
注意:使用密碼保護數據庫或其中的對象的安全性也稱為共享級安全性。
您不能使用此選項為用戶或組分配權限,因此任何掌握密碼的人都可以無限制地訪問所有 Access 數據和數據庫對象。“設置數據庫密碼”命令位於“工具”菜單的“安全”子菜單中。
除共享級安全性外,您還可以使用用戶級安全性,它提供了最嚴格的訪問限制,使您能夠最大限度地控制數據庫及其中包含的對象。這是我們所推薦的數據庫保護措施的一部分(當和操作系統提供的文件級和共享級安全性結合使用時),因此我們將在本文後面對用戶級安全性做詳細介紹。