如果您在早期版本的 Access 中創建了一個數據庫,並對該數據庫應用了用戶級安全機制,那麼當您在 Microsoft Access 2010 中打開該文件時,這些安全設置會保持不變。另外,您還可以從 Access 2010 啟動 Microsoft Office Access 2003 提供的安全工具,例如“用戶級安全機制向導”和各種用戶和組權限對話框。本文介紹了 Access 2003 安全功能的工作原理,以及如何在 Access 2010 中啟動和使用這些功能。本文中的信息只適用於在 Access 2003 或更低版本的 Access 中創建的數據庫(.mdb 文件)。用戶級安全機制不能用於在 Access 2010 中創建的數據庫(.accdb 文件)。此外,如果將 .mdb 文件轉換為新格式(.accdb 文件),那麼 Access 2010 會丟棄您的用戶級安全機制設置。
[用戶級安全機制在 Access 2010 中的工作原理和概述]1、用戶級安全機制在 Access 2010 中的工作原理[/page]
1、Access 2010 僅為使用 Access 2003 和早期文件格式的數據庫(.mdb 和 .mde 文件)提供用戶級安全機制。在 Access 2010 中,如果您打開一個在較低版本的 Access 中創建的數據庫,並且該數據庫應用了用戶級安全機制,那麼該安全功能對該數據庫仍然有效。例如,用戶必須輸入密碼才能使用該數據庫。另外,您還可以啟動和運行 Access 2003 和更低版本的 Access 提供的各種安全工具,例如“用戶級安全機制向導”和各種用戶和組權限對話框。在操作過程中,請記住只有打開 .mdb 或 .mde 文件時這些工具才可用。如果將文件轉換為 Access 2010 文件格式,那麼 Access 會刪除所有現有的用戶級安全功能。
2、Access 2003 用戶級安全機制概述
以下各部分提供了有關 Access 2003 和更低版本的 Access 中的用戶級安全機制的背景信息。如果您已熟悉了以前的安全模型和用戶級安全機制,那麼可以跳過這些部分直接轉到本文後面的設置用戶級安全機制或刪除用戶級安全機制。
用戶級安全機制的基本信息
Access 中的用戶級安全機制類似於基於服務器的系統上的安全機制,它使用密碼和權限來允許或限制個人或組對數據庫中的對象進行訪問。在 Access 2003 或更低版本的 Access 中,當您在 Access 數據庫中實施用戶級安全機制時,數據庫管理員或對象所有者可以控制單個用戶或用戶組對數據庫中的表、查詢、窗體、報表和宏執行的操作。例如,一組用戶可以更改數據庫中的對象,另一組只能將數據輸入到特定表中,還有一組則只能查看一組報表中的數據。
Access 2003 和更低版本的 Access 中的用戶級安全機制使用密碼和權限的組合,即用來指定用戶對數據庫中數據或對象的訪問類型的一組屬性。您可以為個人或組設置密碼和權限,然後這些密碼和權限的組合便會成為安全帳戶,這些帳戶可以用來定義允許訪問數據庫中對象的用戶和用戶組。相應地,用戶和組的組合稱為工作組,Access 會將該信息存儲在工作組信息文件中。當 Access 啟動時,它會讀取工作組信息文件並根據文件中的數據來確定哪些用戶和組具備相應權限。
默認情況下,Access 提供一個內置用戶 ID 和兩個內置組。默認用戶 ID 為 Admin,默認組為 Users 和 Admins。默認情況下,Access 會將內置用戶 ID 添加到 Users 組,因為所有 ID 必須至少屬於一個組。相應地,Users 組對數據庫中的所有對象具有完全權限。另外,Admin ID 還是 Admins 組的成員。Admins 組必須至少包含一個用戶 ID(必須有一個數據庫管理員),而且 Admin ID 將一直是默認數據庫管理員,直到您對其進行了更改。
啟動 Access 2003 或更低版本的 Access 時,Access 會為您分配 Admin 用戶 ID,這樣您就成為了每個默認組的成員。該 ID 和這些組(Admin 和 Users)為所有用戶提供了對數據庫中所有對象的完全權限,這意味著除非您實施了用戶級安全機制,否則任何用戶都可以打開、查看和更改所有 .mdb 文件中的所有對象。
在 Access 2003 或更低版本的 Access 中實施用戶級安全機制的一種方式是:更改 Users 組的權限並向 Admins 組中添加新管理員。如果執行了此操作,Access 會自動將新用戶分配給 Users 組。在執行這些步驟之後,用戶必須通過密碼登錄後才能打開受保護的數據庫。但是,如果需要實施更為詳細的安全機制(例如,允許一組用戶輸入數據,而只允許另一組用戶讀取該數據),則必須創建其他用戶和組,並授予他們對數據庫中某些或所有對象的特定權限。實施此類用戶級安全機制是一項復雜的任務。為了幫助簡化此過程,Access 提供了“用戶級安全機制向導”,使用該向導可以更輕松地通過一個步驟創建用戶和組。
“用戶級安全機制向導”可以幫助您分配權限以及創建用戶帳戶和組帳戶。用戶帳戶包含用戶名和唯一的個人 ID 編號 (PID),可用於管理用戶查看、使用或更改 Access 工作組中的數據庫對象的權限。組帳戶是用戶帳戶的集合,因此組帳戶位於工作組中。Access 使用組名和 PID 來標識每個工作組,而且分配給組的權限應用於組中的所有用戶。有關使用該向導的詳細信息,請參閱本文後面的設置用戶級安全機制。
完成向導後,您可以手動分配、修改或刪除工作組中的用戶和組帳戶對數據庫及其現有表、查詢、窗體、報表和宏的權限。您還可以設置 Access 為您或其他用戶添加到數據庫中的任何新表、查詢、窗體、報表和宏分配的默認權限。
工作組和工作組信息文件
在 Access 2003 和更低版本的 Access 中,工作組是指在多用戶環境中共享數據的一組用戶。工作組信息文件包含為每個用戶或用戶組設置的用戶和組帳戶、密碼和權限。當打開數據庫時,Access 會讀取工作組信息文件中的數據並實施該文件中包含的安全設置。相應地,用戶帳戶是指 Access 為管理用戶權限而創建的用戶名和個人 ID (PID) 的組合。組帳戶是用戶帳戶的集合,Access 還通過組名和個人 ID (PID) 來標識這些集合。分配給組的權限適用於組中的所有用戶。然後,可以為這些安全帳戶分配數據庫及其表、查詢、窗體、報表和宏的權限。權限本身存儲在啟用了安全機制的數據庫中。
當用戶首次運行 Access 2003 或更低版本的 Access 時,Access 會自動創建 Access 工作組信息文件,該文件通過用戶在安裝 Access 時指定的名稱和組織信息來標識。對於 Access 2003,安裝程序將此工作組信息文件的相對位置添加到以下注冊表項:
HKEY_CURRENT_USERSoftwareMicrosoftOffice11.0AccessJet4.0EnginesSystemDB
和
HKEY_USERS.DEFAULTSoftwareMicrosoftOffice11.0AccessJet4.0EnginesSystemDB
以後的用戶將從 HKEY_USERS 注冊表項中的值繼承默認的工作組文件路徑。因為這一信息通常很容易確定,所以未經授權的用戶也可以創建該工作組信息文件的另一個版本。因此,這些用戶可能會在工作組信息文件定義的工作組中獲得不可撤銷的管理員帳戶(Admins 組中的成員)權限。為防止未經授權的用戶獲取這些權限,應創建一個新的工作組信息文件,並指定一個工作組 ID (WID),即由 4 到 20 個區分大小寫的字母數字組成的字符串,創建新工作組信息文件時必須輸入該字符串。創建新的工作組可以唯一標識該工作組文件的 Admin 組。只有知道 WID 的用戶才能創建工作組信息文件的副本。要創建新的文件,可以使用“工作組管理員”工具。
除非用戶通過使用“工作組管理員”工具加入了另一個工作組,否則您創建的任何用戶和組帳戶或密碼都會保存在該工作組信息文件中。
要點 請務必寫下准確的名稱、組織和工作組 ID(包括這三個條目中的字母是大寫還是小寫),並將它們保存在安全的位置。在必須重新創建該工作組信息文件時,您必須提供完全相同的名稱、組織和工作組 ID。如果您忘記或丟失了這些條目,可能無法訪問您的數據庫。
用戶級安全機制可以識別兩種類型的權限:顯式權限和隱式權限。顯式權限是指直接授予用戶帳戶的權限;不會影響其他用戶。隱式權限是指授予組帳戶的權限。將一個用戶添加到組中便會向該用戶授予該組的權限;而將一個用戶從組中刪除便會取消該用戶具有的該組的權限。
當用戶嘗試對啟用安全功能的數據庫對象執行一項操作時,該用戶的權限集合即為其顯示和隱式權限的交集。用戶的安全級別通常對該用戶的顯式權限及該用戶所屬的任何和所有組的權限的限制最小。因此,管理工作組最簡單的方式是創建新組並為該組分配權限,而不是為單個用戶分配權限。然後,可以通過向該組添加用戶或從中刪除用戶來更改單個用戶的權限。另外,在需要授予新權限時,通過一項操作即可將該權限授予組中的所有成員。
可以更改數據庫對象的權限的人員包括:
創建數據庫時使用的工作組信息文件的 Admins 組成員。
對象所有者。
任何具備該對象的“管理員”權限的用戶。
即使用戶當前可能無法執行某項操作,但是他們可以授予自己執行此操作的權限。如果用戶是 Admins 組的成員,或者是對象的所有者,便可以這樣做。
創建表、查詢、窗體、報表或宏的用戶便是該對象的所有者。另外,可以更改數據庫中權限的用戶組同樣可以更改這些對象的所有權或者重新創建這些對象,而這兩項操作均可以更改對象的所有權。要重新創建對象,可以制作對象的副本,或者從另一個數據庫導入對象或將對象導出到另一個數據庫。這是轉讓對象(包括數據庫本身)所有權的最簡單的方式。
注釋 復制、導入或導出不會更改將 RunPermissions 屬性設置為“屬於所有者”的查詢的所有權。只有查詢的 RunPermissions 屬性設置為“屬於用戶的”時,才可以更改查詢的所有權。
3、安全帳戶
Access 2003 工作組信息文件包含下列預定義帳戶。
實際上,Access 2003 和更低版本的 Access 中的安全機制始終是有效的。在您激活工作組的登錄過程之前,所有用戶會在 Access 啟動時使用空密碼的默認 Admin 用戶帳戶隱式登錄。在後台,Access 使用 Admin 帳戶作為工作組的管理員帳戶。對於創建的所有數據庫、表、查詢、窗體、報表和宏,除了創建這些對象的所有者(組或用戶)帳戶外,Access 還使用 Admin 帳戶。
管理員和所有者非常重要,因為他們擁有不可撤消的權限:
管理員(Admins 組成員)始終可以獲得工作組中創建的對象的完全權限。
擁有表、查詢、窗體、報表或宏的帳戶始終可以獲得該對象的完全權限。
擁有數據庫的帳戶始終可以打開該數據庫。
因為對於 Access 的每個副本,Admin 用戶帳戶完全相同,所以幫助保護數據庫安全的第一步是定義管理員和所有者用戶帳戶(或使用單個用戶帳戶作為管理員和所有者帳戶),然後從 Admins 組刪除 Admin 用戶帳戶。否則,所有擁有 Access 副本的用戶都可以使用 Admin 帳戶登錄到您的工作組,並具備對工作組的表、查詢、窗體、報表和宏的完全權限。
您可以根據需要向 Admins 組分配任意數量的用戶帳戶,但是只有一個用戶帳戶可以擁有數據庫,擁有數據庫的帳戶是指在執行以下操作時活動的用戶帳戶:創建數據庫,或通過創建新數據庫並將一個數據庫的所有對象導入到該新數據庫來轉讓所有權。但是,組帳戶也可以擁有數據庫中的表、查詢、窗體、報表和宏。
組織安全帳戶時需要注意的事項
只有用戶帳戶可以登錄到 Access;您無法使用組帳戶來登錄。
為數據庫用戶創建的帳戶必須存儲在這些用戶使用該數據庫時將加入的工作組信息文件中。如果使用不同的文件創建數據庫,那麼應在創建帳戶前更改該文件。
確保為管理員和用戶帳戶創建唯一密碼。可以使用管理員帳戶登錄的用戶始終可以獲得在工作組中創建的所有表、查詢、窗體、報表和宏的完全權限。可以使用所有者帳戶登錄的用戶始終可以獲得所擁有對象的完全權限。
創建了用戶和組帳戶後,可以查看和打印它們之間的關系。Access 可以打印工作組中帳戶的報表,其中顯示每個用戶所屬的組以及屬於每個組的用戶。
如果使用的是在 Microsoft Access 2.0 中創建的工作組信息文件,則必須以 Admins 組成員的身份登錄才能打印用戶和組信息。如果工作組信息文件是在 Microsoft Access 97 或更高版本的 Access 中創建的,那麼工作組中的所有用戶都可以打印用戶和組信息。
設置啟動/刪除用戶級安全機制
本部分中的步驟介紹了如何啟動和運行“用戶級安全機制向導”。請記住,這些步驟只適用於具有 Access 2003 文件格式或早期文件格式並在 Access 2010 中打開的數據庫。
啟動“用戶級安全機制向導”
打開要管理的 .mdb 或 .mde 文件。
在“數據庫工具”選項卡上的“管理”組中,單擊“用戶和權限”下的箭頭,然後單擊“用戶級安全機制向導”。
按照每頁上的步驟完成該向導。 “用戶級安全機制向導”會用相同名稱和 .bak 文件擴展名創建當前 Access 數據庫的備份副本,然後對當前數據庫中的所選對象應用安全措施。
如果當前 Access 數據庫是通過密碼幫助保護 VBA 代碼的,該向導會提示您輸入密碼,而且只有輸入該密碼後向導才能成功完成其操作。
通過向導創建的所有密碼都會打印在完成該向導時打印的“用戶級安全機制向導”報告中。應將該報告保存在安全位置。在工作組文件丟失或損壞時,您可以使用該報告重新創建該工作組文件。
刪除用戶級安全機制
要在使用 Access 2010 期間刪除用戶級安全機制,請將 .mdb 文件另存為 .accdb 文件。
以 Access 2007 格式保存該文件的副本
單擊“文件”選項卡。將打開 Backstage 視圖。
在左側單擊“共享”。
在右側單擊“將數據庫另存為”,然後單擊“Access 數據庫(*.accdb)”。
將顯示“另存為”對話框。
使用“保存位置”列表查找要保存轉換後的數據庫的位置。
在“保存類型”列表中,選擇“Microsoft Office Access 2007 數據庫(*.accdb)”。
單擊“保存”。
對象權限參考
下表列出了可以為數據庫及數據庫中的對象設置的權限,並介紹了使用每個權限設置的效果或結果。