2011-05-04 54 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