如果您在 Access 2007 之前以 Access 版本建立資料庫,且將使用者層級安全性應用至該資料庫,當您在 Access 2007 或更新版本中開啟該檔案時,這些安全性設定會保留。 此外,您也可以從較新版本的 Access 啟動 Microsoft Office Access 2003 提供的安全性工具 ,例如 User-Level 安全性精靈,以及各種使用者和群組許可權對話方塊。 本文將說明 Access 2003 安全性功能如何工作,並說明如何在 Access 2007 或更高版本中啟動及使用這些功能。
附註: 本文資訊僅適用于在 Access 2003 或較舊版本中建立的資料庫, (.mdb 檔案) 。 在 Access 2007 或更新版本 (.accdb 檔案中建立的資料庫) 。 此外,如果您將 .mdb 檔案轉換為 .accdb (的新格式,Access) 捨棄您的使用者層級安全性設定。
本文內容
Access 2007 或更高版本中的使用者層級安全性行為
Access 2007 及更新版本僅針對使用 Access 2003 和較舊版本檔案格式 (.mdb 和 .mde 檔案的資料庫提供使用者層級) 。 在較新版本中,如果您開啟以較舊版本 Access 建立的資料庫,且該資料庫已使用使用者層級安全性,該安全性功能會以專為該資料庫設計來使用。 例如,使用者必須輸入密碼才能使用資料庫。
此外,您可以啟動及執行 Access 2003 和較舊版本提供的各種安全性工具,例如 User-Level 安全性精靈,以及各種使用者和群組許可權對話方塊。 繼續進行時,請記住,只有當您開啟 .mdb 或 .mde 檔案時,才能使用這些工具。 如果您將檔案轉換成 .accdb 檔案格式,Access 會移除所有現有的使用者層級安全性功能。
Access 2003 使用者層級安全性概觀
下列各節提供 Access 2003 和較舊版本中使用者層級安全性的背景資訊。 如果您已經熟悉先前的安全性模型和使用者層級安全性,您可以略過這些區段,直接前往本文稍後的設定使用者 層級安全性或移除使用者層級 安全性。
使用者層級安全性的基本功能
Access 中的使用者層級安全性與伺服器端系統的安全性機制類似,它使用密碼和許可權來允許或限制個人或個人群組存取您資料庫中的物件。 在 Access 2003 或較舊版本中,當您在 Access 資料庫中實施使用者層級安全性時,資料庫系統管理員或物件擁有者可以控制個別使用者或使用者群組在資料庫中的資料表、查詢、表單、報表和宏上可執行檔動作。 例如,一組使用者可以變更資料庫中的物件,另一個群組只能將資料輸入特定資料表,而第三個群組只能查看一組報告中的資料。
Access 2003 和較舊版本中的使用者層級安全性會使用密碼和許可權的組合,這是一組屬性,可指定使用者對資料庫中的資料或物件具有的存取類型。 您可以為個人或個人群組設定密碼和許可權,這些密碼和許可權組合會變成安全帳戶,定義可存取資料庫中物件的使用者和使用者群組。 使用者和群組的組合又稱為工作組,而 Access 會將該資訊儲存在工作組資訊檔案中。 啟動時,Access 會讀取工作組資訊檔案,並依據檔案中的資料強制執行許可權。
根據預設,Access 會提供內建的使用者識別碼和兩個內建群組。 預設的使用者識別碼是系統管理員,而預設群組是使用者和系統管理員。 根據預設,Access 會將內建的使用者識別碼新增到使用者群組,因為所有識別碼都必須屬於至少一個群組。 使用者群組則擁有資料庫中所有物件的完整許可權。 此外,系統管理識別碼也是系統管理員群組的成員。 管理員群組必須包含至少一個使用者識別碼 (必須有資料庫系統管理員) ,而且管理員識別碼是預設的資料庫系統管理員,直到您變更它。
當您啟動 Access 2003 或較舊版本時,Access 會指派系統管理員使用者識別碼給您,因此您成為每個預設群組的成員。 該識別碼和這些群組 (系統管理員和使用者) 會給予所有使用者資料庫中所有物件的完整許可權,這表示除非您實施使用者層級安全性,否則任何使用者都可以開啟、查看及變更所有 .mdb 檔案中的所有物件。
若要在 Access 2003 或較舊版本中實施使用者層級安全性,其中一個方法就是變更使用者群組的許可權,並新增系統管理員至管理員群組。 當您這麼做時,Access 會自動將新使用者指派給使用者群組。 當您執行這些步驟時,每當使用者開啟受保護的資料庫時,都必須使用密碼登入。 不過,如果您需要執行更特定的安全性 ,例如允許一組使用者輸入資料,另一組使用者唯讀取該資料,則必須建立其他使用者和群組,並授予他們資料庫中部分或所有物件的特定許可權。 執行這類使用者層級安全性可能會是一項複雜的工作。 為了協助簡化程式,Access 提供User-Level精靈,讓建立使用者和群組的一個步驟變得更容易。
安全User-Level精靈可協助您指派許可權,以及建立使用者和群群組帳戶。 使用者帳戶包含使用者名稱和唯一個人識別碼 (PIDs) 管理使用者的許可權,以在 Access 工作組中查看、使用或變更資料庫物件。 群群組帳戶是使用者帳戶的集合,進而位於工作組中。 Access 會使用組名和 PID 來識別每個工作組,指派給群組的許可權會適用于群組中的所有使用者。 有關使用精靈的資訊,請參閱本文稍後的 設定使用者層級安全性。
完成精靈之後,您可以手動指派、修改或移除工作組中資料庫及其現有資料表、查詢、表單、報表和宏的使用者和群群組帳戶許可權。 您也可以設定 Access 針對您或其他使用者新增到資料庫的任何新資料表、查詢、表單、報表和宏所指派的預設許可權。
工作組和工作組資訊檔案
在 Access 2003 和較舊版本中,工作組是在多使用者環境中共用資料的一組使用者。 工作組資訊檔案包含每個使用者或使用者群組的使用者和群群組帳戶、密碼和許可權設定。 當您開啟資料庫時,Access 會讀取工作組資訊檔案的資料,並強制執行檔案包含的安全性設定。 使用者帳戶是使用者名稱和個人識別碼的組合, (Access) PID 帳戶來管理使用者的許可權。 群群組帳戶是使用者帳戶的集合,Access 也會根據組名和個人識別碼來識別這些 (PID) 。 指派給群組的許可權會適用于群組中的所有使用者。 然後,這些安全性帳戶就可以被指派資料庫及其資料表、查詢、表單、報表和宏的許可權。 許可權本身會儲存在已啟用安全性的資料庫中。
當使用者第一次執行 Access 2003 或較舊版本時,Access 會自動建立一個 Access 工作組資訊檔案,該檔案會以使用者安裝 Access 時指定的名稱和組織資訊識別。 針對 Access 2003,安裝程式會將此工作組資訊檔案的相對位置新增到下列登錄機碼:
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的值。 由於此資訊通常很容易判斷,因此未經授權的使用者可能會建立此工作組資訊檔案的另一個版本。 因此,未經授權的使用者可能會假設系統管理員帳戶不可撤銷的許可權 (該工作組資訊檔案定義之工作組中的) 管理員群組成員。 若要防止未經授權的使用者假設這些許可權,請建立新工作組資訊檔案,並指定工作組識別碼 (WID) ,這是當您建立新工作組資訊檔案時輸入的 4 到 20 個字元區分大小寫的字母數位字串。 建立新工作組可唯一識別此工作組檔案的管理員群組。 只有知道 WID 的人才能建立工作組資訊檔案的一份副本。 若要建立新檔案,請使用User-Level精靈。
重要: 請務必寫下確切的名稱、組織和工作組識別碼 ,包括字母是大寫還是小寫 (,) 全部放在安全的地方。 如果您必須重新建立工作組資訊檔案,則必須提供完全相同的名稱、組織和工作組識別碼。 如果您忘記或失去這些專案,可能會失去資料庫的存取權。
許可權如何工作,以及誰可以指派許可權
使用者層級安全性可識別兩種許可權類型:明確和隱含。 明確許可權是直接授予使用者帳戶的許可權;不會影響其他使用者。 隱含許可權是授予群群組帳戶的許可權。 將使用者新增到該群組,會授予該群組的許可權給該使用者;將使用者從群組移除會移除該群組的許可權。
當使用者嘗試對採用安全性功能的資料庫物件執行作業時,該使用者的許可權組是根據該使用者明確和隱含許可權的交集。 使用者的安全性層級一向是該使用者明確許可權,以及該使用者所屬之任何及所有群組之許可權的限制最低。 因此,管理工作組最不復雜的方法就是建立新群組並指派許可權給群組,而不是指派給個別使用者。 然後,您可以新增或移除群組中的這些使用者,以變更個別使用者的許可權。 此外,如果您需要授予新許可權,您可以在單一作業中將許可權授予群組的所有成員。
您可以變更資料庫物件的許可權,方法為:
-
資料庫建立時,使用中工作組資訊檔案的系統管理員群組成員。
-
物件的擁有者。
-
具有物件管理許可權的任何使用者。
即使使用者目前可能無法執行動作,他們還是可以自行授予執行動作的許可權。 如果使用者是系統管理員群組的成員,或使用者是物件的擁有者,則此為 True。
建立資料表、查詢、表單、報表或宏的使用者是該物件的擁有者。 此外,可以變更資料庫中許可權的使用者群組也可以變更這些物件的擁有權,或者他們可以重新建立這些物件,這兩種都是變更物件擁有權的方法。 若要重新建立物件,您可以複製物件,也可以從另一個資料庫匯出物件,或將其匯出至另一個資料庫。 這是移轉物件擁有權最簡單的方法,包括資料庫本身。
附註: 複製、匯出或匯出不會變更其 RunPermissions 屬性設為擁有者的查詢 擁有權。 只有當查詢的 RunPermissions 屬性設為 User's 時,您才能變更 查詢的擁有權。
安全性帳戶
Access 2003 工作組資訊檔案包含下列預先定義的帳戶。
帳戶 |
函數 |
管理員 |
預設使用者帳戶。 這個帳戶與 Access 和其他可以使用 MicrosoftJet 資料庫引擎的程式 ,例如 Visual Basic for Applications (VBA) 和 Microsoft Office Excel 2003 等程式完全相同。 |
管理員 |
系統管理員的群群組帳戶。 這個帳戶在每個工作組資訊檔案中都是唯一的。 根據預設,系統管理員使用者是系統管理員群組的成員。 系統管理群組中一定要有一個使用者。 |
使用者 |
包含所有使用者帳戶的群群組帳戶。 當系統管理員群組的成員建立使用者帳戶時,Access 會自動新增使用者帳戶至使用者群組。 此帳戶與任何工作組資訊檔案相同,但僅包含該工作組管理員群組成員所建立之使用者帳戶。 根據預設,此帳戶擁有所有新建立物件的完整許可權。 若要從使用者群組移除使用者帳戶,唯一的方法就是讓系統管理群組的成員刪除該使用者。 |
事實上,Access 2003 和較舊版本的安全性一直有效。 在啟用工作組的登入程式之前,Access 會以空白密碼使用預設的系統管理員使用者帳戶,在啟動時以不公開方式登入所有使用者。 在幕後,Access 會使用系統管理員帳戶做為工作組的系統管理員帳戶。 Access 除了任何資料庫和資料表 (群組或使用者) 、查詢、表單、報表和宏的擁有者之外,也使用系統管理帳戶。
系統管理員和擁有者很重要,因為他們擁有的許可權無法被取走:
-
系統管理員 (管理員群組成員) 永遠可以取得在工作組中建立之物件的完整許可權。
-
擁有資料表、查詢、表單、報表或宏的帳戶永遠可以取得該物件的完整許可權。
-
擁有資料庫的帳戶隨時都可以開啟該資料庫。
由於每個 Access 的系統管理員使用者帳戶完全相同,因此協助保護資料庫的第一個步驟是定義系統管理員和擁有者使用者帳戶 (或使用單一使用者帳戶做為系統管理員和擁有者帳戶) ,然後從系統管理員群組移除系統管理員使用者帳戶。 否則,擁有 Access 副本的任何人都可以使用系統管理員帳戶登入您的工作組,並擁有工作組資料表、查詢、表單、報表和宏的完整許可權。
您可以指派多少個使用者帳戶給管理員群組,但只有一個使用者帳戶可以擁有資料庫—擁有帳戶是建立資料庫時,或當擁有權移轉時,建立新資料庫,並將所有資料庫物件都移轉至其中時,會使用中的使用者帳戶。 不過,群群組帳戶可以在資料庫中擁有資料表、查詢、表單、報表和宏。
組織安全性帳戶時考慮事項
-
只有使用者帳戶可以登入 Access;無法使用群群組帳戶登入。
-
您為資料庫使用者建立的帳戶必須儲存在使用資料庫時將會加入的工作組資訊檔案中。 如果您使用其他檔案來建立資料庫,請變更檔案,然後再建立帳戶。
-
請務必為系統管理員和使用者帳戶建立唯一密碼。 可以使用系統管理員帳戶登入的使用者,永遠可以取得工作組中建立之任何資料表、查詢、表單、報表和宏的完整許可權。 可以使用擁有者帳戶登入的使用者,永遠可以取得該使用者擁有之物件的完整許可權。
建立使用者和群群組帳戶之後,您可以查看及列印它們之間的關係。 Access 會列印工作組中帳戶的報告,其中顯示每個使用者所屬的群組,以及屬於每個群組的使用者。
附註: 如果您使用使用 Microsoft Access 2.0 所建立工作組資訊檔案,您必須以系統管理員群組的成員登入,才能列印使用者和群組資訊。 如果工作組資訊檔案是使用 Microsoft Access 97 或更新版本建立,工作組中的所有使用者都可以列印使用者和群組資訊。
設定使用者層級安全性
本節中的步驟說明如何啟動及執行安全User-Level精靈。 請記住,這些步驟僅適用于以 Access 2007 或更新版本開啟的 Access 2003 或較舊版本檔案格式的資料庫。
重要: 在 Access 2007 或更新版本中,如果您使用 User-Level 安全性精靈指定預設的工作組資訊檔案,您也必須使用 /WRKGP 命令列參數,在啟動 Access 時指向您的工作組資訊檔案。 有關在 Access 使用命令列參數,請參閱 Microsoft Office 產品命令列 參數一文。
啟動User-Level精靈
-
開啟您想要管理的 .mdb 或 .mde 檔案。
-
在 [資料庫工具」的[資料庫工具> 的 [管理群組中,按一下 [使用者與許可權》 下方的箭段,然後按一下 [使用者層級安全性精靈。
-
請遵循每個頁面上的步驟完成精靈。
附註:
-
User-Level精靈會以相同的名稱及 .bak 副檔名建立目前 Access 資料庫的備份副本,然後針對目前資料庫中選取的物件採用安全性措施。
-
如果您目前的 Access 資料庫使用密碼協助保護 VBA 程式碼,精靈會提示您輸入密碼,您必須輸入密碼,精靈才能順利完成作業。
-
您透過精靈建立的任何密碼,會列印User-Level精靈報告,此報告會在您完成使用精靈時列印。 您應將這份報告保持在安全的位置。 如果工作組檔案遺失或已損壞,您可以使用此報表來重新建立。
-
移除使用者層級安全性
若要在 Access 2007 或更新版本使用時移除使用者層級安全性,請儲存 .mdb 檔案為 .accdb 檔案。
在 中儲存檔案的一份副本。ACCDB 格式
-
按一下 [檔案] 索引標籤。 Backstage 檢視隨即開啟。
-
按一下左側的 [共用。
-
按一下右邊的[另存資料庫為,然後按一下Access Database (*.accdb) 。
[另存新檔] 對話方塊隨即出現。
-
使用儲存在 清單中 尋找儲存轉換資料庫的位置。
-
在儲存為類型清單中,選取Access 2007-2016 資料庫 (*.accdb) 。
-
按一下 [儲存]。
附註: 如果您使用的是 Access 2007,請按一下Microsoft Office按鈕,然後按一下[轉換以開啟 [存回中存新儲存值> 對話方塊,將資料庫儲存到 .ACCDB 檔案格式。
物件使用權限參照
下表列出您可以針對資料庫和資料庫中物件設定的許可權,並說明使用每個許可權設定的效果或結果。
權限 |
適用于這些物件 |
結果 |
開啟/執行 |
整個資料庫、表單、報表、宏 |
使用者可以開啟或執行物件,包括程式模組中的程式。 |
獨佔開啟 |
整個資料庫 |
使用者可以開啟資料庫並鎖定其他使用者。 |
讀取設計 |
資料表、查詢、表單、宏、程式碼模組 |
使用者可以在設計檢視中開啟列出的物件。 附註: 每當您指派另一個許可權 ,例如讀取資料或更新資料,以授予資料表或查詢中資料的存取權時,您也會授予讀取設計許可權,因為設計必須看得見,才能正確呈現和查看資料。 |
修改設計 |
資料表、查詢、表單、宏、程式碼模組 |
使用者可以變更所列物件的設計。 |
管理 |
整個資料庫、資料表、查詢、表單、宏、程式碼模組 |
使用者可以指派許可權給列出的物件,即使使用者或群組並未擁有該物件。 |
讀取資料 |
資料表、查詢 |
使用者可以讀取資料表或查詢的資料。 若要授予使用者讀取查詢的許可權,您也必須授予這些使用者讀取父資料表或查詢的許可權。 此設定暗示了讀取設計許可權,這表示除了資料之外,使用者還可以讀取資料表或查詢設計。 |
更新資料 |
資料表、查詢 |
使用者可以更新資料表或查詢的資料。 使用者必須擁有更新父資料表或查詢的許可權。 此設定表示讀取設計與讀取資料許可權。 |
插入資料 |
資料表、查詢 |
使用者可以將資料插入資料表或查詢。 對於查詢,使用者必須擁有將資料插入父資料表或查詢的許可權。 此設定表示讀取資料和讀取設計許可權。 |
刪除資料 |
資料表、查詢 |
使用者可以從資料表或查詢中刪除資料。 對於查詢,使用者必須有權從父資料表或查詢中刪除資料。 此設定表示讀取資料和讀取設計許可權。 |