我的雇主严格限于MS Office产品和SharePoint。我无法使用其他数据库解决方案。
我正在尝试实现和共享Access数据库,以允许多个用户输入和编辑数据。但是,我(当然)希望限制用户编辑数据库本身(表格,表格等)的能力,并且只能通过表格查看和编辑特定数据。
不幸的是,微软似乎已经从较新的访问数据库中删除了用户和安全性?
显然,我必须使用2000-2003数据库来实现安全性,但之后我将失去Access 2016的所有功能。
所以我的问题是,有没有办法在Access 2016数据库中实现数据库中的用户和安全性?
答案 0 :(得分:3)
Access中的用户安全性并非旨在阻止用户修改应用程序。用户安全性旨在说明用户可以打开报告或说出给定表单的内容。您可以使用此安全系统来防止用户弄乱应用程序,但这并不是安全系统的概念或意图。
所以你从来没有真正需要(或想要)使用长期弃用的安全系统作为防止用户弄乱你的应用程序的东西。因此,请将这些概念分开。
如果您想锁定应用程序并防止用户乱搞?好吧,首先,我们假设你的数据库是分裂的。此时,您将应用程序的已编译“可执行文件”分发到每个工作站。
编译版本意味着用户无法更改代码,表单和报告。如果您的应用程序提供了一些“导航”类型的表单来启动+使用给定的报表或表单,那么您的应用程序可以隐藏您不希望用户看到的访问部分。
所以例如,在这个屏幕截图中,我提供了自定义菜单栏,用户无法看到或“落后”现场乱七八糟的应用程序部分。锁定应用程序的这种“行为”与旧的安全系统有关,并且所述的安全系统不是必需的,或者实际上甚至建议用于锁定应用程序的简单任务。
因此,作为起点,请确保始终分发应用程序的编译版本(accDE代替accDB)。您对应用程序的满意程度取决于您。上面的屏幕截图是访问2003,但这是一个2010应用程序的屏幕上限 - 在这种情况下,我甚至提供了一个自定义功能区。用户不会弄乱或看到应用程序的任何其他部分。
用户级安全性是允许某些用户启动特定表单或报表的系统,而其他用户则不启动此类表单或报表。安全系统不是用于锁定应用程序并阻止用户修改表单,报告和代码。虽然安全系统也可以用来阻止用户修改报告,但如果你想让用户不要乱用,那么你还是要使用已编译的accDE,你仍然需要花时间隐藏访问界面。 (因此,在这方面,安全系统确实无法为您节省任何时间和精力)。
答案 1 :(得分:1)
不确定您的用户对Access的了解程度如何 - 有些人可以找到某些方法,如果他们对计算机足够好。
无论如何,通常您的Access数据库将分为前端(表单)和后端(表)。让您的前端指向后端表,并在前端指向hide。这很重要,因为前端的用户无法改变后端表的设计。
您也可以创建自己的"登录"如果您愿意,可以使用表和用户和权限表。
答案 2 :(得分:1)
这可以通过 Peter的软件来解决:LASsie。
但是,为了完全安全,您需要 SQL Server 作为后端。 Express Edition 可以免费安装和使用。
答案 3 :(得分:1)
有没有办法在Access 2016数据库中实现数据库中的用户和安全性? - 是的 - 这是应用程序设计人员的工作。当然首先必须是用户身份的身份意识 - 通过以Active Directly名称呼叫或创建登录。
之后,它既有创意又有复杂性。要限制他们看到的数据 - 那么表记录中必须有一个标识字段,用于通过查询进行管理。要限制可以使用的表单/报表对象,需要在用户界面中使用逻辑来查看可见性/功能。
是否有一些魔术子弹嵌入功能可以做到这一点?不......这都是设计和代码工作