如果您在早期版本的 Access 中创建了一个数据库,并对该数据库应用了用户级安全机制,那么当您在 Microsoft Access 2010 中打开该文件时,这些安全设置会保持不变。另外,您还可以从 Access 2010 启动 Microsoft Office Access 2003 提供的安全工具,例如“用户级安全机制向导”和各种用户和组权限对话框。本文介绍了 Access 2003 安全功能的工作原理,以及如何在 Access 2010 中启动和使用这些功能。本文中的信息只适用于在 Access 2003 或更低版本的 Access 中创建的数据库(.mdb 文件)。用户级安全机制不能用于在 Access 2010 中创建的数据库(.accdb 文件)。此外,如果将 .mdb 文件转换为新格式(.accdb 文件),那么 Access 2010 会丢弃您的用户级安全机制设置。
[用户级安全机制在 Access 2010 中的工作原理和概述]1、用户级安全机制在 Access 2010 中的工作原理[/page]
1、Access 2010 仅为使用 Access 2003 和早期文件格式的数据库(.mdb 和 .mde 文件)提供用户级安全机制。在 Access 2010 中,如果您打开一个在较低版本的 Access 中创建的数据库,并且该数据库应用了用户级安全机制,那么该安全功能对该数据库仍然有效。例如,用户必须输入密码才能使用该数据库。另外,您还可以启动和运行 Access 2003 和更低版本的 Access 提供的各种安全工具,例如“用户级安全机制向导”和各种用户和组权限对话框。在操作过程中,请记住只有打开 .mdb 或 .mde 文件时这些工具才可用。如果将文件转换为 Access 2010 文件格式,那么 Access 会删除所有现有的用户级安全功能。
2、Access 2003 用户级安全机制概述
以下各部分提供了有关 Access 2003 和更低版本的 Access 中的用户级安全机制的背景信息。如果您已熟悉了以前的安全模型和用户级安全机制,那么可以跳过这些部分直接转到本文后面的设置用户级安全机制或删除用户级安全机制。
用户级安全机制的基本信息
Access 中的用户级安全机制类似于基于服务器的系统上的安全机制,它使用密码和权限来允许或限制个人或组对数据库中的对象进行访问。在 Access 2003 或更低版本的 Access 中,当您在 Access 数据库中实施用户级安全机制时,数据库管理员或对象所有者可以控制单个用户或用户组对数据库中的表、查询、窗体、报表和宏执行的操作。例如,一组用户可以更改数据库中的对象,另一组只能将数据输入到特定表中,还有一组则只能查看一组报表中的数据。
Access 2003 和更低版本的 Access 中的用户级安全机制使用密码和权限的组合,即用来指定用户对数据库中数据或对象的访问类型的一组属性。您可以为个人或组设置密码和权限,然后这些密码和权限的组合便会成为安全帐户,这些帐户可以用来定义允许访问数据库中对象的用户和用户组。相应地,用户和组的组合称为工作组,Access 会将该信息存储在工作组信息文件中。当 Access 启动时,它会读取工作组信息文件并根据文件中的数据来确定哪些用户和组具备相应权限。
默认情况下,Access 提供一个内置用户 ID 和两个内置组。默认用户 ID 为 Admin,默认组为 Users 和 Admins。默认情况下,Access 会将内置用户 ID 添加到 Users 组,因为所有 ID 必须至少属于一个组。相应地,Users 组对数据库中的所有对象具有完全权限。另外,Admin ID 还是 Admins 组的成员。Admins 组必须至少包含一个用户 ID(必须有一个数据库管理员),而且 Admin ID 将一直是默认数据库管理员,直到您对其进行了更改。
启动 Access 2003 或更低版本的 Access 时,Access 会为您分配 Admin 用户 ID,这样您就成为了每个默认组的成员。该 ID 和这些组(Admin 和 Users)为所有用户提供了对数据库中所有对象的完全权限,这意味着除非您实施了用户级安全机制,否则任何用户都可以打开、查看和更改所有 .mdb 文件中的所有对象。
在 Access 2003 或更低版本的 Access 中实施用户级安全机制的一种方式是:更改 Users 组的权限并向 Admins 组中添加新管理员。如果执行了此操作,Access 会自动将新用户分配给 Users 组。在执行这些步骤之后,用户必须通过密码登录后才能打开受保护的数据库。但是,如果需要实施更为详细的安全机制(例如,允许一组用户输入数据,而只允许另一组用户读取该数据),则必须创建其他用户和组,并授予他们对数据库中某些或所有对象的特定权限。实施此类用户级安全机制是一项复杂的任务。为了帮助简化此过程,Access 提供了“用户级安全机制向导”,使用该向导可以更轻松地通过一个步骤创建用户和组。
“用户级安全机制向导”可以帮助您分配权限以及创建用户帐户和组帐户。用户帐户包含用户名和唯一的个人 ID 编号 (PID),可用于管理用户查看、使用或更改 Access 工作组中的数据库对象的权限。组帐户是用户帐户的集合,因此组帐户位于工作组中。Access 使用组名和 PID 来标识每个工作组,而且分配给组的权限应用于组中的所有用户。有关使用该向导的详细信息,请参阅本文后面的设置用户级安全机制。
完成向导后,您可以手动分配、修改或删除工作组中的用户和组帐户对数据库及其现有表、查询、窗体、报表和宏的权限。您还可以设置 Access 为您或其他用户添加到数据库中的任何新表、查询、窗体、报表和宏分配的默认权限。
工作组和工作组信息文件
在 Access 2003 和更低版本的 Access 中,工作组是指在多用户环境中共享数据的一组用户。工作组信息文件包含为每个用户或用户组设置的用户和组帐户、密码和权限。当打开数据库时,Access 会读取工作组信息文件中的数据并实施该文件中包含的安全设置。相应地,用户帐户是指 Access 为管理用户权限而创建的用户名和个人 ID (PID) 的组合。组帐户是用户帐户的集合,Access 还通过组名和个人 ID (PID) 来标识这些集合。分配给组的权限适用于组中的所有用户。然后,可以为这些安全帐户分配数据库及其表、查询、窗体、报表和宏的权限。权限本身存储在启用了安全机制的数据库中。
当用户首次运行 Access 2003 或更低版本的 Access 时,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 注册表项中的值继承默认的工作组文件路径。因为这一信息通常很容易确定,所以未经授权的用户也可以创建该工作组信息文件的另一个版本。因此,这些用户可能会在工作组信息文件定义的工作组中获得不可撤销的管理员帐户(Admins 组中的成员)权限。为防止未经授权的用户获取这些权限,应创建一个新的工作组信息文件,并指定一个工作组 ID (WID),即由 4 到 20 个区分大小写的字母数字组成的字符串,创建新工作组信息文件时必须输入该字符串。创建新的工作组可以唯一标识该工作组文件的 Admin 组。只有知道 WID 的用户才能创建工作组信息文件的副本。要创建新的文件,可以使用“工作组管理员”工具。
除非用户通过使用“工作组管理员”工具加入了另一个工作组,否则您创建的任何用户和组帐户或密码都会保存在该工作组信息文件中。
要点 请务必写下准确的名称、组织和工作组 ID(包括这三个条目中的字母是大写还是小写),并将它们保存在安全的位置。在必须重新创建该工作组信息文件时,您必须提供完全相同的名称、组织和工作组 ID。如果您忘记或丢失了这些条目,可能无法访问您的数据库。