如何防止最终用户在 MS Access 2010 应用程序中从前端查看后端数据?

Posted

技术标签:

【中文标题】如何防止最终用户在 MS Access 2010 应用程序中从前端查看后端数据?【英文标题】:How to prevent the end-user from viewing back-end data from front-end in an MS Access 2010 application? 【发布时间】:2012-02-17 09:37:50 【问题描述】:

我有一个 Access 应用程序,它分为存储数据表的后端和驻留 UI 和业务逻辑的前端。我在不允许最终用户通过前端查看后端数据表的情况下分发应用程序。 我将前端编译为 .accde 文件并禁用“显示导航窗格”和“使用访问特殊键”选项。此外,我有一个 VBA 代码执行以在退出时禁用这些选项,这样如果最终用户启用它们,它们就会被代码禁用。但是,如果用户启用这些选项然后从任务管理器中终止 MS Access,那么当再次启动前端时,用户可以查看导航窗格。

保护我的应用程序以使用户只能访问表单和报告而不是基础数据的最佳方法是什么?

【问题讨论】:

我还没有找到解决这个问题的方法。 【参考方案1】:

不知道这是否是您正在寻找的答案,但您可能会考虑将您的数据迁移到 MSDE/SQL Server Express。它们为表和查询提供用户级安全性。

【讨论】:

【参考方案2】:

如果您禁用打开数据库的 shift 键,用户应该无法更改您的设置。请注意,您可以通过这种方式将自己锁定在数据库之外。

另请参阅:MS Access Start up Properties

如果保护您的数据至关重要,您可能不需要查看 Access 以外的数据库,使用 Access,您可以防止意外篡改,但真正的恶意篡改会通过。

【讨论】:

我担心的是恶意篡改。我不是 MS Access 方面的专家。但我花了几个小时寻找解决问题的方法,但没有成功。 正如我所说,如果您的数据很关键,您需要一台服务器和类似 SQL Server 的东西。 @Fionnuala 如果他们迁移到 SQL Server,这会阻止用户查看表的所有行吗?我的意思是每个用户都有可能对特定的行有所了解。这超出了访问范围吗? SQL Server 允许您创建视图,MS Access 允许您链接视图。您可以在 SQL Server 中创建角色、授予角色权限以及向角色添加成员。

以上是关于如何防止最终用户在 MS Access 2010 应用程序中从前端查看后端数据?的主要内容,如果未能解决你的问题,请参考以下文章

防止用户绕过 MS Access 上的登录表单

VBscript 在 MS Access 2010 中制作问卷表格

防止向下箭头或向上箭头更新 MS Access 中的组合框

MS Access 2010 - 如何根据以前的输入以编程方式显示表单字段?

MS Access 2010 vba 查询

MS Access 2010:获取(Windows)阻止数据库的用户