在当前 access 版本中设置或更改 Access 2003 用户级安全性

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

如果在 access 2007 之前创建了 access 版本的 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 或更早版本中实现用户级安全的一种方法是更改 "用户" 组的权限, 并向 "管理员" 组添加新管理员。 执行此操作时, Access 会自动向 "用户" 组分配新用户。 执行这些步骤时, 用户在打开受保护的数据库时, 必须使用密码进行登录。 但是, 如果你需要实现更具体的安全性 (允许一组用户输入数据, 而另一组用户仅读取该数据), 则必须创建其他用户和组, 并向其授予对数据库中的部分或全部对象的特定权限. 实现这种类型的用户级安全性可能会成为一项复杂的任务。 为了帮助简化该过程, Access 提供了 "用户级安全向导", 从而使用户和组能够更轻松地在一个步骤过程中创建。

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

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

工作组和工作组信息文件

在 Access 2003 和早期版本中, 工作组是共享数据的多用户环境中的一组用户。 工作组信息文件包含为每个单独的用户或用户组设置的用户和组帐户、密码和权限。 打开数据库时, Access 将读取工作组信息文件中的数据, 并强制执行文件中包含的安全设置。 反过来, 用户帐户是 Access 创建的用于管理用户权限的用户名和个人 ID (PID) 的组合。 组帐户是用户帐户的集合, 并且 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 使用 "管理员" 帐户作为工作组的管理员帐户。 除了创建的任何数据库和表、查询、窗体、报表和宏的所有者 (组或用户) 之外, Access 还使用管理员帐户。

管理员和所有者非常重要, 因为他们拥有无法离开的权限:

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

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

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

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

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

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

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

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

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

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

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

设置用户级安全机制

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

重要: 在 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 支持专员。

×