Access 2016 - 用户和权限?

7
我的雇主严格限制使用MS Office产品和SharePoint。我无法使用不同的数据库解决方案。
我正在尝试实施和共享一个Access数据库,以允许多个用户输入和编辑数据。然而,我希望限制用户只能通过表单查看和编辑特定数据,而不能编辑数据库本身(如表格、表单等)。
不幸的是,最新的Access数据库似乎已经删除了用户和安全性功能。

https://support.office.com/en-us/article/what-happened-to-user-level-security-69b362cd-503f-4e8a-a735-fb923ffb9fa3?ui=en-US&rs=en-US&ad=US

显然,我必须使用2000-2003数据库来实现安全性,但这样我将失去Access 2016的所有功能。
那么我的问题是,是否有一种方法在Access 2016数据库中实现用户和安全性?
4个回答

6
Access中的用户安全性并不是为了防止用户修改应用程序而设计的。用户安全性的设计是为了确定哪些用户可以打开报告或表单等。您可以使用此安全系统来防止用户干扰应用程序,但这并不是安全系统的概念或意图。
因此,您从未真正需要(或想要)使用已弃用的安全系统来防止用户干扰您的应用程序。因此,请将这些概念分开。
如果您想锁定应用程序并防止用户胡乱操作?首先,我们假设您的数据库已经拆分。在这一点上,您将向每个工作站分发编译后的应用程序“可执行文件”。
编译版本意味着用户无法更改代码、表单和报告。如果您的应用程序提供某种“导航”类型的表单以启动和使用给定的报告或表单,则您的应用程序几乎可以隐藏您不希望用户看到的Access部分。
例如,在此屏幕截图中,我提供了自定义菜单栏,用户无法看到或“进入”干扰应用程序部分。这种“锁定”应用程序的行为与旧的安全系统没有任何关系,如上所述,该安全系统不是必需的,实际上甚至不建议简单地锁定应用程序的任务。

enter image description here

作为起点,请确保始终分发已编译版本的应用程序(使用accDE代替accDB)。您可以根据需要设计应用程序。上面的屏幕截图是Access 2003,但这是2010应用程序的屏幕截图 - 在这种情况下,我甚至提供了自定义功能区。用户无法干扰或查看应用程序的其他部分。

enter image description here

用户级别安全是一种系统,允许某些用户启动特定的表单或报告,而其他用户则无法启动这些表单或报告。安全系统不是用于锁定应用程序并防止用户修改表单、报告和代码的。虽然安全系统也可以用于防止用户修改报告,但如果您想让用户不要乱搞,那么仍然需要使用编译后的accDE,并且还需要花时间隐藏访问界面。(因此,安全系统在这方面实际上并没有为您节省任何时间和精力)。

3

好的 - Access中非常古老的用户安全性早已被弃用 - 有充分的理由。你绝对不想尝试回到那个时期。

在Access 2016数据库中实现用户和安全性的方法是什么?- 是的 - 这就是应用程序设计人员所做的。首先必须有身份感知来确定用户是谁 - 可以通过调用Active Directly名称或创建登录来实现。

之后变得既有创意又复杂。要限制他们看到的数据 - 那么表记录中必须有一个身份字段,通过查询进行管理。要限制哪些表单/报告对象可以使用需要在用户界面中添加逻辑以确定可见性/功能。

是否有一些神奇的内置功能可以完成这项工作?没有...这都是设计和编码工作。


谢谢您的回复! - EAP

2

如果您不确定用户对Access的熟练程度,有些人可能会在计算机上足够娴熟,从而绕过某些方法。

通常情况下,您的Access数据库将分为前端(表单)和后端(表格)。让您的前端指向后端表格并在前端中隐藏它们。这很重要,因为前端的用户无法更改后端表格的设计。

如果您愿意,还可以创建自己的“登录”表单,其中包含用户和权限表。

请参见10个保护Microsoft Access数据库的技巧


1
这在某种程度上可以通过 Peter's Software 解决:LASsie
但是,为了获得完全的安全性,您需要使用 SQL Server 作为后端。Express 版本是免费安装和使用的。

谢谢您的回复!我很想使用SQL Server或其他应用程序/数据库技术。不幸的是,我的雇主严格限制我只能使用MS SharePoint和MS Office产品。我会查看LASsie。谢谢! - EAP

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接