2011-05-04 53 views
1

我想將用戶訪問控制系統添加到使用內置於MS Jet數據庫引擎中的DAO系統的MS Access應用程序之一。我在Access 2007上使用accdb數據庫。MS Jet Engine中的數據庫級用戶安全性

我明白如何管理DAO用戶組&。

我發現,要「打開」安全控制,我必須將admin上的密碼從空白更改爲一些非空白值。這強制用戶在打開訪問數據庫時登錄。然而,我發現,這個強制用戶在系統上的每個Access數據庫中登錄。

我的問題: 有沒有辦法打開某些accdb的用戶登錄並將其關閉所有其他人?

+0

如果您正在使用ACCDB,則無法使用僅支持MDB文件的Jet用戶級安全性。 – 2011-05-06 02:23:51

回答

2

訪問使用工作組信息文件來存儲用戶和組帳戶信息。默認名稱是System.mdw

通過檢查SystemDb屬性,可以找出當前工作組信息文件的名稱及其所在的位置。例如,從您的訪問會話中,切換到即時窗口並運行此行:

? SystemDB 

但是,你可以有另一個工作組信息文件,並啓動了一個快捷鍵,其中包括了/ WRKGRP開關依次進入備用工作組信息文件的完整路徑。

快捷模式包括4個元素。

"Path2EXE" "Path2Db" /WRKGRP "Path2MDW" 

這是我的Access 2003系統的工作快捷方式。 (這應該是所有在一行上;我分裂在這裏,所以你不會需要滾動看到這一切。)

"C:\Program Files\Microsoft Office\OFFICE11\MSACCESS.EXE" "P:\Access\wip\sandie\NewDB.mdb" 
/WRKGRP "P:\Access\wip\sandie\Security.mdw" 

所以問題是,你可以有兩個(或更多)的工作組信息文件:沒有管理員密碼的默認值,用於您的不安全數據庫;另一個帶有用於安全數據庫的管理員密碼,並在打開它們時使用/ WRKGRP開關進行引用。

這留下了如何創建備用工作組信息文件的問題。使用用戶級安全向導並選擇「創建新的工作組信息文件」選項。

另一個讓我感到困惑的點是你說Access 2007和ACCDB。我的理解是,Access 2007和2010仍然支持用戶級別的安全性,但只能使用較早的MDB數據庫格式,而不能使用ACCDB格式。

最後一點:如果您需要防彈安全性,ULS是不夠的。它可以被一個訪問密碼破解程序擊敗。據說他們很容易找到,但我從來沒有找過自己。

+0

複製默認工作組文件將導致不安全的數據庫,因爲默認管理員用戶在所有默認工作組中都是相同的。您必須創建一個自定義工作組才能獲取唯一的管理員用戶作爲保護數據庫的起點。 – 2011-05-06 02:23:25

+0

@David_W_Fenton謝謝。我確定了答案。 – HansUp 2011-05-06 03:35:38