如果您在 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 安全性精靈可協助您指派許可權,以及建立使用者和群組帳戶。 用戶帳戶包含用戶名稱和唯一的個人標識符, (PIN,) 管理用戶檢視、使用或變更 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 時,您才能變更其擁有權。
安全性帳戶
Access 2003 工作組資訊檔案包含下列預先定義的帳戶。
帳戶 |
功能 |
管理員 |
默認的用戶帳戶。 此帳戶與每份 Access 和其他可使用 Microsoft Jet 資料庫引擎的程式完全相同,例如 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 2003 或較舊版本中開啟之 Access 2003 或舊版檔格式的資料庫。
重要: 在 Access 2007 或更新版本中,如果您使用 User-Level 安全性精靈來指定預設的工作組資訊檔案,您也必須在啟動 Access 時使用 /WRKGP 命令行參數指向您的工作組資訊檔案。 如需搭配 Access 使用命令行參數的詳細資訊,請參閱 Microsoft Office 產品的命令行參數一文。
啟動 User-Level 安全性精靈
-
開啟您要管理的.mdb或 .mde 檔案。
-
在 [ 資料庫工具] 索 引標籤的 [ 管理] 群組中,按兩下 [ 使用者和許可權] 下方的箭號,然後按兩下 [ 用戶層級安全性精靈]。
-
依照每個頁面上的步驟完成精靈。
附註:
-
User-Level 安全性精靈會建立目前 Access 資料庫的備份複本,其中包含相同的名稱和.bak擴展名,然後針對目前資料庫中選取的物件使用安全性措施。
-
如果您目前的 Access 資料庫使用密碼來協助保護 VBA 程式代碼,精靈會提示您輸入密碼,精靈才能順利完成其作業。
-
您透過精靈建立的任何密碼都會列印在 User-Level 安全性精靈] 報告中,並在您使用精靈完成時列印。 您應該將此報告保存在安全的位置。 如果工作群組檔案遺失或損毀,您可以使用此報告重新建立。
-
拿掉使用者層級安全性
若要在 Access 2007 或更新版本中工作時移除使用者層級安全性,請將.mdb檔案儲存為 .accdb 檔案。
將檔案複本儲存在 。ACCDB 格式
-
按一下 [檔案] 索引標籤。 Backstage 檢視隨即開啟。
-
按兩下左側的 [ 共享]。
-
在右側按兩下 [ 另存資料庫為],然後按兩下 [Access Database (*.accdb) ] 。
[另存新檔] 對話方塊隨即出現。
-
使用 [ 存入] 列表尋找儲存轉換資料庫的位置。
-
在 [ 存盤類型] 列表中,選 取 Access 2007-2016 Database (*.accdb) 。
-
按一下 [儲存]。
附註: 如果您使用的是 Access 2007,請按兩下 [Microsoft Office] 按鈕 ,然後按兩下 [ 轉換] 以開啟 [ 儲存於 ] 對話框,將資料庫儲存到 。ACCDB 檔案格式。
物件許可權參照
下表列出您可以為資料庫和資料庫中的物件設定的許可權,並說明使用每個許可權設定的效果或結果。
權限 |
適用於這些物件 |
結果 |
開啟/執行 |
整個資料庫、表單、報表、宏 |
用戶可以開啟或執行物件,包括程式碼模組中的程式。 |
獨佔開啟 |
整個資料庫 |
用戶可以開啟資料庫並鎖定其他使用者。 |
朗讀設計 |
數據表、查詢、表單、宏、程式代碼模組 |
使用者可以在 [設計檢視] 中開啟列出的物件。 附註: 每當您指派 [讀取數據] 或 [更新數據] 等其他許可權來授與數據表或查詢中數據的存取權時,也會授與 「讀取設計」許可權,因為設計必須能正確呈現及檢視數據。 |
修改設計 |
數據表、查詢、表單、宏、程式代碼模組 |
用戶可以變更所列對象的設計。 |
管理 |
整個資料庫、數據表、查詢、表單、宏、程式代碼模組 |
使用者可以指派許可權給列出的物件,即使使用者或群組不擁有該物件。 |
朗讀數據 |
數據表、查詢 |
用戶可以讀取數據表或查詢中的數據。 若要授與使用者讀取查詢的許可權,您也必須授與這些使用者讀取父數據表或查詢的許可權。 此設定表示 [讀取設計] 許可權,這表示使用者除了數據外,還可以讀取您的數據表或查詢設計。 |
更新數據 |
數據表、查詢 |
使用者可以更新數據表或查詢中的數據。 用戶必須具備更新父數據表或查詢的許可權。 此設定意味著 [讀取設計] 和 [讀取數據] 許可權。 |
插入數據 |
數據表、查詢 |
用戶可以在數據表或查詢中插入數據。 對於查詢,用戶必須擁有將數據插入父數據表或查詢的許可權。 此設定意味著 [讀取數據] 和 [讀取設計] 許可權。 |
刪除數據 |
數據表、查詢 |
用戶可以從數據表或查詢中刪除數據。 對於查詢,用戶必須擁有從父數據表或查詢刪除數據的許可權。 此設定意味著 [讀取數據] 和 [讀取設計] 許可權。 |