我在 Access 2010 中有一个数据库,在其中创建了一个导航表单,我希望普通用户打开数据库以输入密码,并且只能访问该表单,而不能访问实际的表或导航窗格。他们应该只能通过我准备的表格查看、添加、编辑和删除数据,我不希望他们能够自己访问表格,除非他们有管理员密码。
有没有办法创建用户权限?
3 回答
您当然可以考虑使用 Access 中所谓的 ULS(用户级安全性)。对于 accDB 格式文件,此功能已被弃用,但您可以自由地将 ULS 与 mdb 格式文件和 Access 2010 一起使用。
阅读此文档,然后再阅读一遍。Microsoft Access 安全常见问题解答。
我还应该指出,阻止用户查看表格或设计表单的“行为”很少使用安全模型。安全系统就是定义谁可以打开什么表格,或者谁可以打开什么表格,或者谁可以打开什么报表。我认为使用 ULS 可能会在防止用户查看代码或修改表单的目标上出现一些重叠,但通常不会使用这种安全模型。
为了防止修改表单、代码、报告等,通常的方法是将 Access 应用程序编译成所谓的 Access 可执行文件(accDE 用于 2007 及以后,并且在 mde 之前)。
此编译步骤可防止用户修改常见对象,如表单、报表和 VBA 代码。只需几行代码,您就可以隐藏所有 Access UI,包括功能区(甚至可能构建自定义功能区)。因此,使用正确的启动设置和这行代码:
您可以使用以下一行代码隐藏功能区:
DoCmd.ShowToolbar "Ribbon", acToolbarNo
生成的应用程序如下所示:
以上是用一行代码完成的——剩下的只是简单的启动设置。请注意您如何看到上面屏幕截图后面的桌面,但没有看到 Access UI。
您还可以在启动时禁用 shift 键旁路。这意味着当应用程序启动时,您的表单和自定义 UI 就会出现。用户将无法进入“幕后”,也无法切换到设计模式。
此致
如果这解释了如何将 Access 实际编译为可执行文件,那就太好了。– 安德兰 2013 年 9 月 30 日 13:38
文件 > 保存并发布 > 将数据库另存为:“制作 ACCDE”
使用 Microsoft 访问权限,您无法完全限制用户查看表格。您仍然可以使用应用程序顶部的快捷菜单后门隐藏表单或覆盖权限。访问有一些严重的限制,因为整个文件本身必须在文件夹级别具有修改权限才能打开。您可以编译一个文件来阻止对 VBA 代码和表单设计的访问。