在 access 2007 或更高版本中设置或更改 access 2003 的用户级安全机制

注意: 我们希望能够尽快以你的语言为你提供最新的帮助内容。 本页面是自动翻译的,可能包含语法错误或不准确之处。 我们的目的是使此内容能对你有所帮助。 可以在本页面底部告诉我们此信息是否对你有帮助吗? 请在此处查看本文的英文版本以便参考。

如果你在 access 2007 之前在 access 版本中创建了数据库, 并且你对该数据库应用了用户级安全机制, 那么在 Access 2007 或更高版本中打开该文件时, 这些安全设置将保持不变。 此外, 你还可以启动 Microsoft Office Access 2003 提供的安全工具-用户级安全向导和不同的用户和组权限对话框 (来自 Access 的更高版本)。 本文介绍 access 2003 安全功能的工作方式, 并说明如何在 Access 2007 或更高版本中启动和使用它们。

注意: 本文中的信息仅适用于 Access 2003 或更早版本 (.mdb 文件) 中创建的数据库。 对于在 Access 2007 或更高版本 (.accdb 文件) 中创建的数据库, 用户级安全不可用。 此外, 如果你将 .mdb 文件转换为新的格式 (.accdb 文件), Access 将放弃你的用户级安全设置。

本文内容

用户级安全在 Access 2007 或更高版本中的行为

Access 2003 用户级安全概述

设置用户级安全机制

删除用户级安全机制

对象权限参考

用户级安全在 Access 2007 或更高版本中的行为

Access 2007 及更高版本仅为使用 Access 2003 和更低版本的文件格式 (.mdb 和 .mde 文件) 的数据库提供用户级安全。 在更高版本中, 如果打开在 Access 的早期版本中创建的数据库, 并且该数据库应用了用户级安全, 该安全功能将按照为该数据库设计的那样正常工作。 例如, 用户必须输入密码才能使用数据库。

此外, 你还可以启动并运行由 Access 2003 及更早版本提供的各种安全工具, 如 "用户级安全向导" 和 "各种用户和组权限" 对话框。 在执行操作时, 请记住, 只有当您打开 .mdb 或 .mde 文件时, 这些工具才会可用。 如果将文件转换为 .accdb 文件格式, Access 将删除所有现有的用户级安全功能。

Access 2003 用户级安全概述

以下各节提供了有关 Access 2003 和早期版本中的用户级安全的背景信息。 如果你已熟悉以前的安全模型和用户级安全机制, 则可以跳过这些部分, 并直接转到 "设置用户级安全删除用户级安全", 本文稍后介绍。

用户级安全机制的基础知识

Access 中的用户级安全与基于服务器的系统上的安全机制类似, 它使用密码和权限来允许或限制个人或用户组对数据库中对象的访问权限。 在 access 2003 或更早版本中, 当您在 access 数据库中实施用户级安全机制时, 数据库管理员或对象的所有者可以控制各个用户或用户组可以对表、查询、窗体、报表和执行的操作。数据库中的宏。 例如, 一组用户可以更改数据库中的对象, 另一个组只能在特定表中输入数据, 而第三个组只能查看一组报表中的数据。

Access 2003 和更早版本中的用户级安全机制使用密码和权限的组合, 这是一组属性, 用于指定用户对数据库中的数据或对象所拥有的访问权限类型。 你可以为单个或一组用户设置密码和权限, 这些密码和权限的组合将变为安全帐户, 这些帐户定义允许访问你的数据库中的对象的用户和用户组。 反过来, 用户和组的组合也称为工作组, Access 将该信息存储在工作组信息文件中。 在启动时, Access 将读取工作组信息文件, 并根据文件中的数据强制实施权限。

默认情况下, Access 会提供一个内置的用户 ID 和两个内置组。 默认用户 ID 为 "管理员", 默认组为 "用户管理员"。 默认情况下, Access 会将内置用户 ID 添加到用户组, 因为所有 id 都必须至少属于一个组。 反过来, 用户组对数据库中的所有对象具有完全权限。 此外, 管理员 ID 也是 "管理员" 组的成员。 "管理员" 组必须至少包含一个用户 ID (必须具有数据库管理员), 并且管理员 ID 是默认的数据库管理员, 直到你进行更改。

当你启动 access 2003 或更早版本时, Access 会将管理员用户 ID 分配给你, 从而使你成为每个默认组的成员。 该 ID 以及这些组 (管理员和用户) 向所有用户授予对数据库中的所有对象的完全权限, 这意味着任何用户都可以打开、查看和更改所有 .mdb 文件中的所有对象, 除非你实现用户级安全。

在 Access 2003 或更早版本中实现用户级安全的一种方法是, 更改 Users 组的权限, 并向管理员组添加新管理员。 执行此操作时, Access 会自动向用户组分配新用户。 当你执行这些步骤时, 用户每次打开受保护的数据库时, 都必须使用密码登录。 但是, 如果你需要实现更具体的安全性, 允许一组用户输入数据, 而另一组用户只读取数据, 例如, 你必须创建其他用户和组, 并向他们授予数据库中的部分或全部对象的特定权限. 实现该类型的用户级安全可能成为一种复杂的任务。 为了帮助简化该过程, Access 提供了 "用户级安全机制向导", 使您可以更轻松地在一个步骤过程中创建用户和组。

"用户级安全向导" 可帮助你分配权限并创建用户和组帐户。 用户帐户包含用于管理用户在 Access 工作组中查看、使用或更改数据库对象的权限所需的用户名和唯一的个人 ID 号 (pid)。 组帐户是用户帐户的集合, 这些帐户又驻留在工作组中。 Access 使用组名和 PID 标识每个工作组, 分配给组的权限将应用于组中的所有用户。 有关使用该向导的详细信息, 请参阅本文后面的设置用户级安全

完成向导后, 您可以在您的工作组中为数据库及其现有的表、查询、窗体、报表和宏手动分配、修改或删除用户和组帐户的权限。 你还可以设置 Access 为您或其他用户添加到数据库中的任何新表、查询、窗体、报表和宏分配的默认权限。

工作组和工作组信息文件

在 Access 2003 和更早版本中, 工作组是共享数据的多用户环境中的一组用户。 工作组信息文件包含为每个单独的用户或用户组设置的用户和组帐户、密码和权限。 当您打开数据库时, Access 将读取工作组信息文件中的数据, 并强制实施该文件中包含的安全设置。 反过来, 用户帐户是用户姓名和个人 ID (PID) 的组合, Access 创建该 ID 以管理用户的权限。 组帐户是用户帐户的集合, 并且 Access 还通过组名称和个人 ID (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 注册表项中的值继承默认的工作组文件路径。 由于此信息通常很容易确定, 未经授权的用户可能会创建此工作组信息文件的另一个版本。 因此, 未经授权的用户可能会承担由该工作组信息文件定义的工作组中的管理员帐户 ("管理员" 组成员) 的不可撤消的权限。 若要防止未经授权的用户假定这些权限, 请创建新的工作组信息文件, 并指定一个工作组 ID (WID), 其中包含4到20个字符的字母数字字符串, 在您创建新的工作组信息时输入。源文件. 创建新的工作组将唯一标识此工作组文件的管理员组。 只有知道 WID 的人员才能够创建工作组信息文件的副本。 若要创建新文件, 请使用 "用户级安全机制向导"。

重要: 请确保记下确切的名称、组织和工作组 ID, 包括字母是否大写或小写 (对于所有三个条目), 并将其放在安全的位置。 如果必须重新创建工作组信息文件, 则必须提供完全相同的名称、组织和工作组 ID。 如果忘记或丢失这些条目, 则可能会失去对数据库的访问权限。

权限的工作方式和可分配权限的人员

用户级安全识别两种类型的权限: 显式和隐式。 显式权限是指直接授予用户帐户的权限;其他用户不会受到影响。 "隐式权限" 是授予组帐户的权限。 将用户添加到该组将授予该组对该用户的权限;从组中删除用户将放弃该组对该用户的权限。

当用户尝试对使用了安全功能的数据库对象执行操作时, 该用户的权限集基于该用户的显式和隐式权限的交集。 用户的安全级别始终是该用户的显式权限与该用户所属的任何组和所有组的权限的最低限制。 出于此原因, 管理工作组的最简单的方法是创建新组并将其分配给组, 而不是单个用户的权限。 然后, 你可以通过在组中添加或删除用户来更改各个用户的权限。 此外, 如果你需要授予新的权限, 则可以通过一次操作向组的所有成员授予它们。

可通过以下方法更改数据库对象的权限:

  • 创建数据库时所使用的工作组信息文件的 "管理员" 组成员。

  • 对象的所有者。

  • 具有该对象的 "管理员" 权限的任何用户。

即使用户当前无法执行某个操作, 他们也可能能够授予自己执行该操作的权限。 如果用户是管理员组的成员, 或者如果某个用户是某个对象的所有者, 则这是 true。

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

注意: 复制、导入或导出不会更改其 "运行权限" 属性设置为 "所有者" 的查询的所有权。 仅当查询的 "运行权限" 属性设置为 "用户" 时, 你才可以更改其所有权。

安全帐户

Access 2003 工作组信息文件包含以下预定义的帐户。

帐户

函数

管理员

默认的用户帐户。 此帐户与可使用 Microsoft Jet 数据库引擎的每个 Access 和其他程序副本 (如 Visual Basic for Applications (VBA) 和 Microsoft Office Excel 2003) 完全相同。

管理员

管理员的组帐户。 此帐户对每个工作组信息文件都是唯一的。 默认情况下, "管理员" 用户是 "管理员" 组的成员。 始终必须至少有一个用户在 "管理员" 组中。

用户

由所有用户帐户组成的组帐户。 当管理员组的成员创建用户帐户时, Access 会自动将其添加到 "用户" 组中。 此帐户对于任何工作组信息文件都是相同的, 但是它仅包含由该工作组的管理员组的成员创建的用户帐户。 默认情况下, 此帐户对所有新创建的对象具有完全权限。 从 "用户" 组中删除用户帐户的唯一方法是 "管理员" 组的成员, 以删除该用户。

事实上, Access 2003 及更早版本中的安全性始终处于活动状态。 在激活工作组的登录过程之前, 请使用默认的管理员用户帐户 (带空白密码) 访问所有用户在启动时以不可见的方式登录。 在后台, Access 使用 Admin 帐户作为工作组的管理员帐户。 除了创建的任何数据库和表、查询、窗体、报表和宏的所有者 (组或用户) 之外, Access 还使用管理员帐户。

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

  • 管理员 (管理员组的成员) 始终可以获得在工作组中创建的对象的完全权限。

  • 拥有表、查询、窗体、报表或宏的帐户始终可以获取该对象的完全权限。

  • 拥有数据库的帐户始终可以打开该数据库。

由于管理员用户帐户与 Access 的每个副本完全相同, 因此帮助保护数据库的第一步是定义管理员和所有者用户帐户 (或使用单个用户帐户作为管理员和所有者帐户), 然后再从 "管理员" 组中删除 "管理员" 用户帐户。 否则, 拥有 Access 副本的任何用户都可以使用管理员帐户登录到您的工作组, 并对该工作组的表、查询、窗体、报表和宏具有完全权限。

你可以向 "管理员" 组分配任意数量的用户帐户, 但是只有一个用户帐户可以拥有数据库, 而 "拥有者" 帐户是在创建数据库时处于活动状态的用户帐户, 或者通过创建新数据库并导入来传输所有权 数据库中的所有对象。 但是, 组帐户可以拥有数据库中的表、查询、窗体、报表和宏。

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

  • 只有用户帐户才能登录到 Access;不能使用组帐户登录。

  • 为数据库用户创建的帐户必须存储在用户使用数据库时将加入的工作组信息文件中。 如果你使用其他文件创建数据库, 请在创建帐户之前更改该文件。

  • 请确保为管理员和用户帐户创建唯一的密码。 可以使用管理员帐户登录的用户始终可以获得在工作组中创建的任何表、查询、窗体、报表和宏的完全权限。 可以使用所有者帐户登录的用户始终可以获得该用户所拥有的这些对象的完全权限。

创建用户和组帐户后, 您可以查看和打印它们之间的关系。 Access 将在工作组中打印帐户的报表, 其中显示了每个用户所属的组, 以及属于每个组的用户。

注意: 如果您使用的是使用 Microsoft Access 2.0 创建的工作组信息文件, 则必须作为 "管理员" 组的成员登录才能打印用户和组信息。 如果工作组信息文件是使用 Microsoft Access 97 或更高版本创建的, 则工作组中的所有用户都可以打印用户和组信息。

设置用户级安全机制

本部分中的步骤介绍了如何启动和运行 "用户级安全向导"。 请记住, 这些步骤仅适用于具有 access 2003 或更早版本的文件格式的数据库 (在 access 2007 或更高版本中打开)。

重要: 在 Access 2007 或更高版本中, 如果您使用 "用户级安全向导" 指定默认的工作组信息文件, 那么在启动 Access 时, 还必须使用/WRKGP 命令行开关指向您的工作组信息文件。 有关使用具有 Access 的命令行开关的详细信息, 请参阅Microsoft Office 产品的命令行开关一文。

启动 "用户级安全向导"

  1. 打开要管理的 .mdb 或 .mde 文件。

  2. 在 "数据库工具" 选项卡上的 "管理" 组中, 单击 "用户和权限" 下方的箭头, 然后单击 "用户级安全机制向导"。

  3. 按照每页上的步骤完成向导。

    注意: 

    • "用户级安全向导" 创建具有相同名称和 .bak 文件扩展名的当前 Access 数据库的备份副本, 然后为当前数据库中的所选对象采用安全措施。

    • 如果你的当前 Access 数据库通过使用密码来帮助保护 VBA 代码, 则向导会提示你输入密码, 以便向导成功完成其操作。

    • 在向导中创建的任何密码都将打印在 "用户级安全向导" 报表中, 在您完成使用该向导时将打印该报表。 应将此报告保存在安全的位置。 如果工作组文件丢失或损坏, 则可以使用此报告重新创建该文件。

删除用户级安全机制

若要在 Access 2007 或更高版本中工作时删除用户级安全, 请将 .mdb 文件另存为 .accdb 文件。

在中保存文件的副本。.accdb 格式

  1. 单击“文件”选项卡。 Backstage 视图随即打开。

  2. 在左侧, 单击 "共享"。

  3. 在右侧, 单击 "数据库另存为", 然后单击 " Access 数据库" (* .accdb)

    将显示“另存为”对话框。

  4. 使用 "保存位置" 列表查找要在其中保存转换后的数据库的位置。

  5. 在 "保存类型" 列表中, 选择 " Access 2007-2016 数据库 (* .accdb)"。

  6. 单击“保存”。

注意: 如果您使用的是 Access 2007, 请单击 " Microsoft Office 按钮", 然后单击 "转换" 以打开 "保存于" 对话框, 将数据库保存到。.accdb 文件格式。

对象权限参考

下表列出了您可以为数据库和数据库中的对象设置的权限, 并描述了使用每个权限设置的效果或结果。

权限

应用于这些对象

结果

打开/运行

整个数据库、窗体、报表、宏

用户可以打开或运行对象, 包括代码模块中的过程。

以独占方式打开

整个数据库

用户可以打开数据库并锁定其他用户。

阅读设计

表、查询、窗体、宏、代码模块

用户可以在 "设计" 视图中打开列表中的对象。

注意: 当你通过分配其他权限 (如读取数据或更新数据) 授予对表或查询中的数据的访问权限时, 你还会授予 "读取" 设计权限, 因为必须能够看到设计才能正确显示和查看数据。

修改设计

表、查询、窗体、宏、代码模块

用户可以更改所列对象的设计。

管理

整个数据库、表、查询、窗体、宏、代码模块

用户可以将权限分配给列出的对象, 即使用户或组不拥有该对象也是如此。

读取数据

表、查询

用户可以读取表或查询中的数据。 若要向用户授予读取查询的权限, 您还必须向这些用户授予读取父表或查询的权限。 此设置隐含 "读取设计" 权限, 这意味着除数据外, 用户还可以读取表或查询设计。

更新数据

表、查询

用户可以更新表或查询中的数据。 用户必须具有更新父表或查询的权限。 此设置同时表示 "读取设计" 和 "读取数据" 权限。

插入数据

表、查询

用户可以将数据插入到表或查询中。 对于查询, 用户必须具有在父表或查询中插入数据的权限。 此设置同时表示 "读取数据" 和 "读取设计" 权限。

删除数据

表、查询

用户可以从表或查询中删除数据。 对于查询, 用户必须具有从父表或查询中删除数据的权限。 此设置同时表示 "读取数据" 和 "读取设计" 权限。

返回页首

扩展你的 Office 技能
了解培训
抢先获得新功能
加入 Office 预览体验计划

此信息是否有帮助?

谢谢您的反馈!

谢谢你的反馈! 可能需要转接到 Office 支持专员。

×