限制用户对 MS 访问中的表和查询的访问

Posted

技术标签:

【中文标题】限制用户对 MS 访问中的表和查询的访问【英文标题】:Restrict user access for tables and queries in MS access 【发布时间】:2016-05-23 20:28:34 【问题描述】:

我有一个带有 4 个表、4 个查询和 1 个表单的 MS Access 数据库。

有没有办法限制用户在打开访问文件时只能看到表单。打开表格的密码保护线路也足够了。

注意:我知道在 MS 访问 (https://support.office.com/en-us/article/Manage-database-objects-in-the-Navigation-Pane-04f0708d-c7c7-46bc-8c0a-670751f93d36) 中隐藏对象和组,但我认为没有密码保护功能可以实现这一点,任何知道如何取消隐藏的用户都可以查看表和查询。

【问题讨论】:

如果您将表单设置为启动表单,并将数据库的文件扩展名更改为.accdr,它将以运行时模式打开,这意味着用户只能执行您允许他们执行的任何操作那个表格。他们不能直接打开表或查询。够了吗? @HansUp 任何用户都可以更改文件名并将其打开并可以访问表格? 【参考方案1】:

MS Access 提供了几个启动选项。包括隐藏和禁用许多功能。

此外,您可以定义一个在文件启动时打开的表单,如下所示:

访问选项 > 当前数据库 > 显示表单,选择您要在启动文件时显示的表单。

向下滚动一点时,您可以例如禁用“显示导航窗格”,以不显示包含表单、表格、查询等的左侧窗格。

顺便说一句,在启动文件时按住 shift 键时,所有启动选项都被禁用。

查看this video,所有详细信息均已解释。

【讨论】:

【参考方案2】:

如果您的数据库被拆分,您可以从一份前端副本中删除所有非必要对象并将其分发给有问题的用户。但是,表单的任何依赖对象都需要随附(包括链接表),如果用户知道 Access,他们仍然可以读/写表。这也可能在新版本的分发过程中造成混乱,因为 DBA 必须维护前端的多个版本。

另一种方法是完全隐藏导航窗格。我的意思不是最小化,而是使用 VBA 使用DoCmd.RunCommand acCmdWindowHide 将其关闭。正如您所提到的,任何可以在 VBA 中运行此命令的用户都可以取消隐藏导航窗格,但普通用户将无法取消隐藏它。如果有人可以在 VBA 中取消隐藏导航窗格,您应该与他们讨论在使用数据库时允许/禁止什么以避免任何设计更改或绕过表单验证。如果他们了解 Access/VBA 到那时,他们应该了解他们的行为何时会破坏平台。

【讨论】:

有没有设置密码的功能,只有管理员才能查看表格? @goutam 如果您使用的是 .mdb 数据库,则有用户级安全选项。此功能已在较新版本的 Access 中删除,并且在任何 .accdb 文件类型中均不可用。您应该可以通过“工具”>“安全”菜单进入用户级安全向导。

以上是关于限制用户对 MS 访问中的表和查询的访问的主要内容,如果未能解决你的问题,请参考以下文章

限制少数用户访问数据库。 (MS 访问 2007)

如何优化限制查询以便从庞大的表中更快地访问数据?

MS 访问限制 X、Y

MS 访问限制 X、Y

限制访问报告中图表中的列数

MS 访问 年龄限制在 18 岁或以上