Access 2003完整教程:关于用户级安全机制 (MDB)

注释本主题中的信息仅适用于 Microsoft Access 数据库 (.mdb)。

Microsoft Access用户级安全机制非常类似于在基于服务器的系统上看到的用户级安全机制。使用密码和权限,可以允许或限制个人、组(由个人组成)对数据库中对象的访问。安全帐户定义了哪些个人和哪些组(由个人组成)可以访问数据库中的对象。这一信息称为工作组,存储在工作组信息文件中。

关于用户级安全机制

帮助保护数据库的最佳方法是用户级安全机制。使用用户级安全机制的两个主要原因是:

在用户级安全机制下,当用户启动 Microsoft Access 时要键入一个密码。然后 Access 开始读取工作组信息文件,在该文件中每个用户都由唯一标识代码标识。在工作组信息文件中,通过用户的个人 ID 和密码将用户标识为已授权的单个用户,同时还标识为指定组的成员。Microsoft Access 提供两个默认组:管理员(命名为管理员组)和用户(命名为用户组),但也可定义其他组。

尽管在很多数据库上设置用户级安全机制将是一个令人发怵的工作,但“设置安全机制向导”使这一过程变得容易,它可以通过一步操作来为Access 数据库采用全新的安全功能。此外,通过执行普通的安全方案,“设置安全机制向导”甚至可以消除使用“工具”菜单中的“安全”命令的需要。

“设置安全机制向导”可帮助您指定权限,创建用户帐户和组帐户。但在运行该向导后,可以针对某个数据库及其中已有的表、查询、窗体、报表和宏,手动在工作组中指定、修改或删除用户帐户和组帐户的权限。也可以设置 Microsoft Access 分配给在数据库中新建的表、查询、窗体、报表和宏的默认权限。

可以为组和用户授予权限,规定他们如何使用数据库中的表、查询、窗体、报表和宏。例如,可以允许“用户”组的成员在“客户”表中查看、输入或修改数据,但不能更改表的设计。“用户”组的成员只可以查看包含订单数据的表,而绝不能访问“工资”表。“管理员组”的成员则对数据库中的所有表、查询、窗体、报表和宏都具有完全的权限。如果要进行更细致的控制,可以创建自己的组帐户,为其指定适当的权限,然后将用户添加到组中。

若考虑安全性时只需要管理员组和用户组,则无需创建其他组;可使用默认的“管理员组”和“用户组”。此时,只需为默认的“用户组”指定适当的权限,为默认的“管理员组”添加其他的管理员。添加的任何新用户都会自动被添加到“用户组”中。“用户组”的典型权限可包括对表和查询的“读取数据”和“更新数据”,对窗体和报表的“打开/运行”。

若需对各个不同的用户组进行更细致的控制,可创建自己的组,为不同的组指定不同的权限,并将用户添加到适当的组中。为简化对权限的管理,建议只向组授权(而非用户),然后将用户添加到适当的组中。

例如,为了帮助保护“订单”数据库,可以为经理建立一个“经理”组,为销售员建立一个“销售员”组以及为雇员建立一个“雇员”组。然后可以将具有最少限制的权限赋给“经理”组,将具有较多限制的权限赋给“销售员”组,而将具有最多限制的权限赋给“雇员”组。当为新雇员创建用户帐户时,可将其添加到适当的组中,以使该雇员拥有与该组相关的权限。

关于工作组和工作组信息文件

Microsoft Access 工作组是在多用户环境下共享数据的一组用户。如果定义了用户级安全机制,工作组的成员将记录在用户帐户和组帐户中,这些帐户则存储在 Microsoft Access 工作组信息文件中。用户的密码也存储在工作组信息文件中。可以为这些安全帐户指定对数据库及其表、查询、窗体、报表和宏的权限。权限本身将存储在启用安全功能的数据库中。

当用户在安装 Microsoft Office 后首次运行 Microsoft Access 时,Access 会自动创建 Microsoft Access 工作组信息文件,该文件是以用户指定的名称和组织信息标识的。然后该工作组信息文件的相对位置添加到注册表键值中:

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 注册表键值中继承默认的工作组文件的路径。因为这一信息通常很容易确定,所以未经授权的用户也很可能创建该工作组信息文件的其他版本,并因而获得该工作组信息文件定义的工作组中的管理员帐户(“管理员组”的成员)的各种不可撤消的权限。为预防这一点,应新建一个工作组信息文件并为其指定工作组 ID (WID)。这样只有知道 WID 的人才可以创建工作组信息文件的副本。

您创建的任何用户帐户和组帐户或相应的密码都保存在该工作组信息文件中,除非用户使用“工作组管理员”加入另一个工作组。

注释在 Access 2002 或更高版本中,可以从“工具”菜单上的“安全”子菜单运行“工作组管理员”。

应确保记下正确的名称、组织和工作组 ID,包括字母的大小写(对全部三项而言),并将其放置在安全的地方。如果要重新创建工作组信息文件,必须使用相同的名称、组织和工作组 ID。如果遗忘或丢失这些输入项,则不可恢复,因而也就无法访问数据库。

关于权限的工作方式及可以授权者

有两种类型的权限:显式的和隐式的。显式的权限是指直接授予某一用户帐户的权限,该权限对其他用户没有影响。隐式的权限是指授予组帐户的权限。将用户添加到组中也就同时授予了用户该组的权限,而将用户从组中删除则取消用户的组权限。

当用户要对使用了安全功能的数据库对象执行操作时,该用户所具有的权限基于他的显式和隐式权限的交集。用户的安全级别总是取决于用户的显式权限与用户所属组的权限中限制最苛刻的权限。因此,管理工作组最简单的方法就是创建新组并为组指定权限,而不是为单个用户指定权限。然后通过将用户添加到组中或从组中删除的方式来更改单个用户的权限。而且,如果要授予新的权限,使用一个操作即可对一个组中的所有成员授予权限。

以下人员可以更改对数据库对象的权限:

当用户为管理员组的成员或对象的所有者时,即使自己当前不能执行某个操作,也可以授予自己执行该操作的权限。

创建某个对象(表、查询、窗体、报表或宏)的用户即为该对象的所有者。此外,可以更改数据库中权限的用户组还可以更改这些对象的所有权,也可重新创建这些对象,这是另一种更改对象所有权的方法。若要重新创建某个对象,可以制作该对象的副本,或者将其导入或导出到其他数据库中。若要转移对象的所有权(包括数据库本身),这是最容易的方法。

注释复制、导入或导出并不更改“运行权限”属性设置为“所有者的”的查询的所有权。只有当查询的“运行权限”属性设置为“用户的”时才可以更改其所有权。

关于组织安全帐户

Microsoft Access 工作组信息文件包含以下预定义帐户:

帐户功能
管理员默认的用户帐户。该帐户对所用的 Microsoft Access 副本和其他可以使用Microsoft Jet 数据库引擎的应用程序,如Microsoft Visual Basic for Applications和 Microsoft Excel 等都是完全一样的。
管理员组管理员的组帐户。该帐户对每个工作组信息文件是唯一的。默认情况下,“管理员”用户位于“管理员”组中。在任何时刻“管理员”组中都必须至少要有一个用户。
用户组包含所有用户帐户的组帐户。当“管理员”组的成员创建用户帐户时,Microsoft Access 会自动将用户帐户添加到“用户”组中。该帐户对所有工作组信息文件都是相同的,但它只包含由该工作组的管理员组成员所创建的用户帐户。在默认情况下,该帐户对所有新建对象都拥有完全权限。要删除用户组中的用户帐户,只能由“管理员”组的成员进行。

实际上,Microsoft Access 中的安全机制通常都处于活动状态。Microsoft Access 在启动时会自动使用不带密码的管理员用户帐户以不可见的方式登录所有用户,除非激活某个工作组的登录过程。Microsoft Access 在后台使用管理员帐户作为工作组的管理员帐户,和所创建的任意数据库、表、查询、窗体、报表及宏的所有者。

管理员和所有者非常重要,因为他们具有无法撤消的权限:

因为“管理员”用户帐户对 Microsoft Access 的每份副本而言都是完全相同的,所以为数据库设置安全性的第一步就是定义管理员和所有者用户帐户(或者以一个用户帐户同时作为管理员和所有者帐户),然后将管理员用户帐户从管理员组删除。否则,任何一个拥有 Microsoft Access 副本的用户都可以使用管理员帐户登录到工作组中并对工作组中的表、查询、窗体、报表和宏具有完全的权限。

对管理员组可以添加任意多的用户帐户,但只有一个用户帐户可以拥有数据库本身,即数据库创建时处于活动状态的用户帐户,或者以新建数据库并将其他数据库中的所有对象导入其中的方式转移数据库所有权时处于活动状态的帐户。不过,组帐户可以拥有数据库中的表、查询、窗体、报表和宏。

组织安全帐户时的注意事项:

在创建用户帐户和组帐户后,可以查看和打印各帐户之间的关系。Microsoft Access 将打印有关该工作组中所有帐户的报表,显示每个用户从属的组和每个组包含的用户。

注释如果使用由 Microsoft Access 2.0 版创建的工作组信息文件,必须以“管理员”组成员的身份登录到数据库中以打印用户和组信息。如果工作组信息文件是由 Microsoft Access 7.0 或其后续版本创建的,则工作组中的所有用户都可以打印用户和组信息。

上页:Access 2003完整教程:关于升迁 Microsoft Access 数据库 下页:Access 2003完整教程:关于在多个 Access 版本中使用 Access 文件

Access 2003完整教程:关于用户级安全机制 (MDB)

Access 2003完整教程:关于在多个 Access 版本中使用 Access 文件Access 2003完整教程:用于部署 Access 项目的方法
Access 2003完整教程:关于 Windows 注册表Access 2003完整教程:关于 XSL 转换文件
Access 2003完整教程:关于自动填入数据的“自动查阅”查询 (MDB)Access 2003完整教程:关于双向字体
Access 2003完整教程:关于在从右到左应用程序中创建宏Access 2003完整教程:关于从右到左功能的兼容性
Access 2003完整教程:关于从右到左语言功能Access 2003完整教程:关于双向文本的拼写检查
Access 2003完整教程:关于在表达式中使用双向文本Access 2003完整教程:关于在从右到左应用程序中创建模块
Access 2003完整教程:关于从右到左 HTML 文件的代码页和文本布局支持Access 2003完整教程:关于按文本格式导入、导出和链接从右到左表
Access 2003完整教程:关于阿拉伯语排序次序Access 2003完整教程:关于阿拉伯语代码页
Access 2003完整教程:关于希伯来语代码页Access 2003完整教程:关于希伯来语排序次序
Access 2003完整教程:关于从右到左功能设置的结构Access 2003完整教程:关于窗体和报表上的从右到左行为
版权所有 © 中山市飞娥软件工作室 证书:粤ICP备09170368号