如果您在早期版本的 Access 中創(chuàng)建了一個(gè)數(shù)據(jù)庫(kù),并對(duì)該數(shù)據(jù)庫(kù)應(yīng)用了用戶級(jí)安全機(jī)制,那么當(dāng)您在 Microsoft Access 2010 中打開該文件時(shí),這些安全設(shè)置會(huì)保持不變。另外,您還可以從 Access 2010 啟動(dòng) Microsoft Office Access 2003 提供的安全工具,例如“用戶級(jí)安全機(jī)制向?qū)?rdquo;和各種用戶和組權(quán)限對(duì)話框。本文介紹了 Access 2003 安全功能的工作原理,以及如何在 Access 2010 中啟動(dòng)和使用這些功能。本文中的信息只適用于在 Access 2003 或更低版本的 Access 中創(chuàng)建的數(shù)據(jù)庫(kù)(.mdb 文件)。用戶級(jí)安全機(jī)制不能用于在 Access 2010 中創(chuàng)建的數(shù)據(jù)庫(kù)(.accdb 文件)。此外,如果將 .mdb 文件轉(zhuǎn)換為新格式(.accdb 文件),那么 Access 2010 會(huì)丟棄您的用戶級(jí)安全機(jī)制設(shè)置。
[用戶級(jí)安全機(jī)制在 Access 2010 中的工作原理和概述]1、用戶級(jí)安全機(jī)制在 Access 2010 中的工作原理[/page]
1、Access 2010 僅為使用 Access 2003 和早期文件格式的數(shù)據(jù)庫(kù)(.mdb 和 .mde 文件)提供用戶級(jí)安全機(jī)制。在 Access 2010 中,如果您打開一個(gè)在較低版本的 Access 中創(chuàng)建的數(shù)據(jù)庫(kù),并且該數(shù)據(jù)庫(kù)應(yīng)用了用戶級(jí)安全機(jī)制,那么該安全功能對(duì)該數(shù)據(jù)庫(kù)仍然有效。例如,用戶必須輸入密碼才能使用該數(shù)據(jù)庫(kù)。另外,您還可以啟動(dòng)和運(yùn)行 Access 2003 和更低版本的 Access 提供的各種安全工具,例如“用戶級(jí)安全機(jī)制向?qū)?rdquo;和各種用戶和組權(quán)限對(duì)話框。在操作過(guò)程中,請(qǐng)記住只有打開 .mdb 或 .mde 文件時(shí)這些工具才可用。如果將文件轉(zhuǎn)換為 Access 2010 文件格式,那么 Access 會(huì)刪除所有現(xiàn)有的用戶級(jí)安全功能。
2、Access 2003 用戶級(jí)安全機(jī)制概述
以下各部分提供了有關(guān) Access 2003 和更低版本的 Access 中的用戶級(jí)安全機(jī)制的背景信息。如果您已熟悉了以前的安全模型和用戶級(jí)安全機(jī)制,那么可以跳過(guò)這些部分直接轉(zhuǎn)到本文后面的設(shè)置用戶級(jí)安全機(jī)制或刪除用戶級(jí)安全機(jī)制。
用戶級(jí)安全機(jī)制的基本信息
Access 中的用戶級(jí)安全機(jī)制類似于基于服務(wù)器的系統(tǒng)上的安全機(jī)制,它使用密碼和權(quán)限來(lái)允許或限制個(gè)人或組對(duì)數(shù)據(jù)庫(kù)中的對(duì)象進(jìn)行訪問(wèn)。在 Access 2003 或更低版本的 Access 中,當(dāng)您在 Access 數(shù)據(jù)庫(kù)中實(shí)施用戶級(jí)安全機(jī)制時(shí),數(shù)據(jù)庫(kù)管理員或?qū)ο笏姓呖梢钥刂茊蝹(gè)用戶或用戶組對(duì)數(shù)據(jù)庫(kù)中的表、查詢、窗體、報(bào)表和宏執(zhí)行的操作。例如,一組用戶可以更改數(shù)據(jù)庫(kù)中的對(duì)象,另一組只能將數(shù)據(jù)輸入到特定表中,還有一組則只能查看一組報(bào)表中的數(shù)據(jù)。
Access 2003 和更低版本的 Access 中的用戶級(jí)安全機(jī)制使用密碼和權(quán)限的組合,即用來(lái)指定用戶對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)或?qū)ο蟮脑L問(wèn)類型的一組屬性。您可以為個(gè)人或組設(shè)置密碼和權(quán)限,然后這些密碼和權(quán)限的組合便會(huì)成為安全帳戶,這些帳戶可以用來(lái)定義允許訪問(wèn)數(shù)據(jù)庫(kù)中對(duì)象的用戶和用戶組。相應(yīng)地,用戶和組的組合稱為工作組,Access 會(huì)將該信息存儲(chǔ)在工作組信息文件中。當(dāng) Access 啟動(dòng)時(shí),它會(huì)讀取工作組信息文件并根據(jù)文件中的數(shù)據(jù)來(lái)確定哪些用戶和組具備相應(yīng)權(quán)限。
默認(rèn)情況下,Access 提供一個(gè)內(nèi)置用戶 ID 和兩個(gè)內(nèi)置組。默認(rèn)用戶 ID 為 Admin,默認(rèn)組為 Users 和 Admins。默認(rèn)情況下,Access 會(huì)將內(nèi)置用戶 ID 添加到 Users 組,因?yàn)樗?ID 必須至少屬于一個(gè)組。相應(yīng)地,Users 組對(duì)數(shù)據(jù)庫(kù)中的所有對(duì)象具有完全權(quán)限。另外,Admin ID 還是 Admins 組的成員。Admins 組必須至少包含一個(gè)用戶 ID(必須有一個(gè)數(shù)據(jù)庫(kù)管理員),而且 Admin ID 將一直是默認(rèn)數(shù)據(jù)庫(kù)管理員,直到您對(duì)其進(jìn)行了更改。
啟動(dòng) Access 2003 或更低版本的 Access 時(shí),Access 會(huì)為您分配 Admin 用戶 ID,這樣您就成為了每個(gè)默認(rèn)組的成員。該 ID 和這些組(Admin 和 Users)為所有用戶提供了對(duì)數(shù)據(jù)庫(kù)中所有對(duì)象的完全權(quán)限,這意味著除非您實(shí)施了用戶級(jí)安全機(jī)制,否則任何用戶都可以打開、查看和更改所有 .mdb 文件中的所有對(duì)象。
在 Access 2003 或更低版本的 Access 中實(shí)施用戶級(jí)安全機(jī)制的一種方式是:更改 Users 組的權(quán)限并向 Admins 組中添加新管理員。如果執(zhí)行了此操作,Access 會(huì)自動(dòng)將新用戶分配給 Users 組。在執(zhí)行這些步驟之后,用戶必須通過(guò)密碼登錄后才能打開受保護(hù)的數(shù)據(jù)庫(kù)。但是,如果需要實(shí)施更為詳細(xì)的安全機(jī)制(例如,允許一組用戶輸入數(shù)據(jù),而只允許另一組用戶讀取該數(shù)據(jù)),則必須創(chuàng)建其他用戶和組,并授予他們對(duì)數(shù)據(jù)庫(kù)中某些或所有對(duì)象的特定權(quán)限。實(shí)施此類用戶級(jí)安全機(jī)制是一項(xiàng)復(fù)雜的任務(wù)。為了幫助簡(jiǎn)化此過(guò)程,Access 提供了“用戶級(jí)安全機(jī)制向?qū)?rdquo;,使用該向?qū)Э梢愿p松地通過(guò)一個(gè)步驟創(chuàng)建用戶和組。
“用戶級(jí)安全機(jī)制向?qū)?rdquo;可以幫助您分配權(quán)限以及創(chuàng)建用戶帳戶和組帳戶。用戶帳戶包含用戶名和唯一的個(gè)人 ID 編號(hào) (PID),可用于管理用戶查看、使用或更改 Access 工作組中的數(shù)據(jù)庫(kù)對(duì)象的權(quán)限。組帳戶是用戶帳戶的集合,因此組帳戶位于工作組中。Access 使用組名和 PID 來(lái)標(biāo)識(shí)每個(gè)工作組,而且分配給組的權(quán)限應(yīng)用于組中的所有用戶。有關(guān)使用該向?qū)У脑敿?xì)信息,請(qǐng)參閱本文后面的設(shè)置用戶級(jí)安全機(jī)制。
完成向?qū)Ш,您可以手?dòng)分配、修改或刪除工作組中的用戶和組帳戶對(duì)數(shù)據(jù)庫(kù)及其現(xiàn)有表、查詢、窗體、報(bào)表和宏的權(quán)限。您還可以設(shè)置 Access 為您或其他用戶添加到數(shù)據(jù)庫(kù)中的任何新表、查詢、窗體、報(bào)表和宏分配的默認(rèn)權(quán)限。
工作組和工作組信息文件
在 Access 2003 和更低版本的 Access 中,工作組是指在多用戶環(huán)境中共享數(shù)據(jù)的一組用戶。工作組信息文件包含為每個(gè)用戶或用戶組設(shè)置的用戶和組帳戶、密碼和權(quán)限。當(dāng)打開數(shù)據(jù)庫(kù)時(shí),Access 會(huì)讀取工作組信息文件中的數(shù)據(jù)并實(shí)施該文件中包含的安全設(shè)置。相應(yīng)地,用戶帳戶是指 Access 為管理用戶權(quán)限而創(chuàng)建的用戶名和個(gè)人 ID (PID) 的組合。組帳戶是用戶帳戶的集合,Access 還通過(guò)組名和個(gè)人 ID (PID) 來(lái)標(biāo)識(shí)這些集合。分配給組的權(quán)限適用于組中的所有用戶。然后,可以為這些安全帳戶分配數(shù)據(jù)庫(kù)及其表、查詢、窗體、報(bào)表和宏的權(quán)限。權(quán)限本身存儲(chǔ)在啟用了安全機(jī)制的數(shù)據(jù)庫(kù)中。
當(dāng)用戶首次運(yùn)行 Access 2003 或更低版本的 Access 時(shí),Access 會(huì)自動(dòng)創(chuàng)建 Access 工作組信息文件,該文件通過(guò)用戶在安裝 Access 時(shí)指定的名稱和組織信息來(lái)標(biāo)識(shí)。對(duì)于 Access 2003,安裝程序?qū)⒋斯ぷ鹘M信息文件的相對(duì)位置添加到以下注冊(cè)表項(xiàng):
HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Access\Jet\4.0\Engines\SystemDB
和
HKEY_USERS\.DEFAULT\Software\Microsoft\Office\11.0\Access\Jet\4.0\Engines\SystemDB
以后的用戶將從 HKEY_USERS 注冊(cè)表項(xiàng)中的值繼承默認(rèn)的工作組文件路徑。因?yàn)檫@一信息通常很容易確定,所以未經(jīng)授權(quán)的用戶也可以創(chuàng)建該工作組信息文件的另一個(gè)版本。因此,這些用戶可能會(huì)在工作組信息文件定義的工作組中獲得不可撤銷的管理員帳戶(Admins 組中的成員)權(quán)限。為防止未經(jīng)授權(quán)的用戶獲取這些權(quán)限,應(yīng)創(chuàng)建一個(gè)新的工作組信息文件,并指定一個(gè)工作組 ID (WID),即由 4 到 20 個(gè)區(qū)分大小寫的字母數(shù)字組成的字符串,創(chuàng)建新工作組信息文件時(shí)必須輸入該字符串。創(chuàng)建新的工作組可以唯一標(biāo)識(shí)該工作組文件的 Admin 組。只有知道 WID 的用戶才能創(chuàng)建工作組信息文件的副本。要?jiǎng)?chuàng)建新的文件,可以使用“工作組管理員”工具。
除非用戶通過(guò)使用“工作組管理員”工具加入了另一個(gè)工作組,否則您創(chuàng)建的任何用戶和組帳戶或密碼都會(huì)保存在該工作組信息文件中。
要點(diǎn) 請(qǐng)務(wù)必寫下準(zhǔn)確的名稱、組織和工作組 ID(包括這三個(gè)條目中的字母是大寫還是小寫),并將它們保存在安全的位置。在必須重新創(chuàng)建該工作組信息文件時(shí),您必須提供完全相同的名稱、組織和工作組 ID。如果您忘記或丟失了這些條目,可能無(wú)法訪問(wèn)您的數(shù)據(jù)庫(kù)。
用戶級(jí)安全機(jī)制可以識(shí)別兩種類型的權(quán)限:顯式權(quán)限和隱式權(quán)限。顯式權(quán)限是指直接授予用戶帳戶的權(quán)限;不會(huì)影響其他用戶。隱式權(quán)限是指授予組帳戶的權(quán)限。將一個(gè)用戶添加到組中便會(huì)向該用戶授予該組的權(quán)限;而將一個(gè)用戶從組中刪除便會(huì)取消該用戶具有的該組的權(quán)限。
當(dāng)用戶嘗試對(duì)啟用安全功能的數(shù)據(jù)庫(kù)對(duì)象執(zhí)行一項(xiàng)操作時(shí),該用戶的權(quán)限集合即為其顯示和隱式權(quán)限的交集。用戶的安全級(jí)別通常對(duì)該用戶的顯式權(quán)限及該用戶所屬的任何和所有組的權(quán)限的限制最小。因此,管理工作組最簡(jiǎn)單的方式是創(chuàng)建新組并為該組分配權(quán)限,而不是為單個(gè)用戶分配權(quán)限。然后,可以通過(guò)向該組添加用戶或從中刪除用戶來(lái)更改單個(gè)用戶的權(quán)限。另外,在需要授予新權(quán)限時(shí),通過(guò)一項(xiàng)操作即可將該權(quán)限授予組中的所有成員。
可以更改數(shù)據(jù)庫(kù)對(duì)象的權(quán)限的人員包括:
創(chuàng)建數(shù)據(jù)庫(kù)時(shí)使用的工作組信息文件的 Admins 組成員。
對(duì)象所有者。
任何具備該對(duì)象的“管理員”權(quán)限的用戶。
即使用戶當(dāng)前可能無(wú)法執(zhí)行某項(xiàng)操作,但是他們可以授予自己執(zhí)行此操作的權(quán)限。如果用戶是 Admins 組的成員,或者是對(duì)象的所有者,便可以這樣做。
創(chuàng)建表、查詢、窗體、報(bào)表或宏的用戶便是該對(duì)象的所有者。另外,可以更改數(shù)據(jù)庫(kù)中權(quán)限的用戶組同樣可以更改這些對(duì)象的所有權(quán)或者重新創(chuàng)建這些對(duì)象,而這兩項(xiàng)操作均可以更改對(duì)象的所有權(quán)。要重新創(chuàng)建對(duì)象,可以制作對(duì)象的副本,或者從另一個(gè)數(shù)據(jù)庫(kù)導(dǎo)入對(duì)象或?qū)?duì)象導(dǎo)出到另一個(gè)數(shù)據(jù)庫(kù)。這是轉(zhuǎn)讓對(duì)象(包括數(shù)據(jù)庫(kù)本身)所有權(quán)的最簡(jiǎn)單的方式。
注釋 復(fù)制、導(dǎo)入或?qū)С霾粫?huì)更改將 RunPermissions 屬性設(shè)置為“屬于所有者”的查詢的所有權(quán)。只有查詢的 RunPermissions 屬性設(shè)置為“屬于用戶的”時(shí),才可以更改查詢的所有權(quán)。
3、安全帳戶
Access 2003 工作組信息文件包含下列預(yù)定義帳戶。
實(shí)際上,Access 2003 和更低版本的 Access 中的安全機(jī)制始終是有效的。在您激活工作組的登錄過(guò)程之前,所有用戶會(huì)在 Access 啟動(dòng)時(shí)使用空密碼的默認(rèn) Admin 用戶帳戶隱式登錄。在后臺(tái),Access 使用 Admin 帳戶作為工作組的管理員帳戶。對(duì)于創(chuàng)建的所有數(shù)據(jù)庫(kù)、表、查詢、窗體、報(bào)表和宏,除了創(chuàng)建這些對(duì)象的所有者(組或用戶)帳戶外,Access 還使用 Admin 帳戶。
管理員和所有者非常重要,因?yàn)樗麄儞碛胁豢沙废臋?quán)限:
管理員(Admins 組成員)始終可以獲得工作組中創(chuàng)建的對(duì)象的完全權(quán)限。
擁有表、查詢、窗體、報(bào)表或宏的帳戶始終可以獲得該對(duì)象的完全權(quán)限。
擁有數(shù)據(jù)庫(kù)的帳戶始終可以打開該數(shù)據(jù)庫(kù)。
因?yàn)閷?duì)于 Access 的每個(gè)副本,Admin 用戶帳戶完全相同,所以幫助保護(hù)數(shù)據(jù)庫(kù)安全的第一步是定義管理員和所有者用戶帳戶(或使用單個(gè)用戶帳戶作為管理員和所有者帳戶),然后從 Admins 組刪除 Admin 用戶帳戶。否則,所有擁有 Access 副本的用戶都可以使用 Admin 帳戶登錄到您的工作組,并具備對(duì)工作組的表、查詢、窗體、報(bào)表和宏的完全權(quán)限。
您可以根據(jù)需要向 Admins 組分配任意數(shù)量的用戶帳戶,但是只有一個(gè)用戶帳戶可以擁有數(shù)據(jù)庫(kù),擁有數(shù)據(jù)庫(kù)的帳戶是指在執(zhí)行以下操作時(shí)活動(dòng)的用戶帳戶:創(chuàng)建數(shù)據(jù)庫(kù),或通過(guò)創(chuàng)建新數(shù)據(jù)庫(kù)并將一個(gè)數(shù)據(jù)庫(kù)的所有對(duì)象導(dǎo)入到該新數(shù)據(jù)庫(kù)來(lái)轉(zhuǎn)讓所有權(quán)。但是,組帳戶也可以擁有數(shù)據(jù)庫(kù)中的表、查詢、窗體、報(bào)表和宏。
組織安全帳戶時(shí)需要注意的事項(xiàng)
只有用戶帳戶可以登錄到 Access;您無(wú)法使用組帳戶來(lái)登錄。
為數(shù)據(jù)庫(kù)用戶創(chuàng)建的帳戶必須存儲(chǔ)在這些用戶使用該數(shù)據(jù)庫(kù)時(shí)將加入的工作組信息文件中。如果使用不同的文件創(chuàng)建數(shù)據(jù)庫(kù),那么應(yīng)在創(chuàng)建帳戶前更改該文件。
確保為管理員和用戶帳戶創(chuàng)建唯一密碼?梢允褂霉芾韱T帳戶登錄的用戶始終可以獲得在工作組中創(chuàng)建的所有表、查詢、窗體、報(bào)表和宏的完全權(quán)限。可以使用所有者帳戶登錄的用戶始終可以獲得所擁有對(duì)象的完全權(quán)限。
創(chuàng)建了用戶和組帳戶后,可以查看和打印它們之間的關(guān)系。Access 可以打印工作組中帳戶的報(bào)表,其中顯示每個(gè)用戶所屬的組以及屬于每個(gè)組的用戶。
如果使用的是在 Microsoft Access 2.0 中創(chuàng)建的工作組信息文件,則必須以 Admins 組成員的身份登錄才能打印用戶和組信息。如果工作組信息文件是在 Microsoft Access 97 或更高版本的 Access 中創(chuàng)建的,那么工作組中的所有用戶都可以打印用戶和組信息。
設(shè)置啟動(dòng)/刪除用戶級(jí)安全機(jī)制
本部分中的步驟介紹了如何啟動(dòng)和運(yùn)行“用戶級(jí)安全機(jī)制向?qū)?rdquo;。請(qǐng)記住,這些步驟只適用于具有 Access 2003 文件格式或早期文件格式并在 Access 2010 中打開的數(shù)據(jù)庫(kù)。
啟動(dòng)“用戶級(jí)安全機(jī)制向?qū)?rdquo;
打開要管理的 .mdb 或 .mde 文件。
在“數(shù)據(jù)庫(kù)工具”選項(xiàng)卡上的“管理”組中,單擊“用戶和權(quán)限”下的箭頭,然后單擊“用戶級(jí)安全機(jī)制向?qū)?rdquo;。
按照每頁(yè)上的步驟完成該向?qū)А?“用戶級(jí)安全機(jī)制向?qū)?rdquo;會(huì)用相同名稱和 .bak 文件擴(kuò)展名創(chuàng)建當(dāng)前 Access 數(shù)據(jù)庫(kù)的備份副本,然后對(duì)當(dāng)前數(shù)據(jù)庫(kù)中的所選對(duì)象應(yīng)用安全措施。
如果當(dāng)前 Access 數(shù)據(jù)庫(kù)是通過(guò)密碼幫助保護(hù) VBA 代碼的,該向?qū)?huì)提示您輸入密碼,而且只有輸入該密碼后向?qū)Р拍艹晒ν瓿善洳僮鳌?
通過(guò)向?qū)?chuàng)建的所有密碼都會(huì)打印在完成該向?qū)r(shí)打印的“用戶級(jí)安全機(jī)制向?qū)?rdquo;報(bào)告中。應(yīng)將該報(bào)告保存在安全位置。在工作組文件丟失或損壞時(shí),您可以使用該報(bào)告重新創(chuàng)建該工作組文件。
刪除用戶級(jí)安全機(jī)制
要在使用 Access 2010 期間刪除用戶級(jí)安全機(jī)制,請(qǐng)將 .mdb 文件另存為 .accdb 文件。
以 Access 2007 格式保存該文件的副本
單擊“文件”選項(xiàng)卡。將打開 Backstage 視圖。
在左側(cè)單擊“共享”。
在右側(cè)單擊“將數(shù)據(jù)庫(kù)另存為”,然后單擊“Access 數(shù)據(jù)庫(kù)(*.accdb)”。
將顯示“另存為”對(duì)話框。
使用“保存位置”列表查找要保存轉(zhuǎn)換后的數(shù)據(jù)庫(kù)的位置。
在“保存類型”列表中,選擇“Microsoft Office Access 2007 數(shù)據(jù)庫(kù)(*.accdb)”。
單擊“保存”。
對(duì)象權(quán)限參考
下表列出了可以為數(shù)據(jù)庫(kù)及數(shù)據(jù)庫(kù)中的對(duì)象設(shè)置的權(quán)限,并介紹了使用每個(gè)權(quán)限設(shè)置的效果或結(jié)果。