如果您在早期版本的 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 為 Admin,預設組為 Users 和 Admins。預設情況下,Access 會將內建使用者識別碼 添加到 Users 組,因為所有 ID 必須至少屬於一個組。相應地,Users 組對資料庫中的所有對象具有完全許可權。另外,Admin ID 還是 Admins 組的成員。Admins 組必須至少包含一個使用者 ID(必須有一個資料庫管理員),而且 Admin ID 將一直是預設資料庫管理員,直到您對其進行了更改。
啟動 Access 2003 或更低版本的 Access 時,Access 會為您分配 Admin 使用者識別碼,這樣您就成為了每個預設組的成員。該 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 組中的成員)許可權。為防止未經授權的使用者擷取這些許可權,應建立一個新的工作群組資訊檔案,並指定一個工作群組識別碼 (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)”。
單擊“儲存”。
對象許可權參考
下表列出了可以為資料庫及資料庫中的對象設定的許可權,並介紹了使用每個使用權限設定的效果或結果。