如果我将 MS-Access 前端(多台计算机)连接到 SQL Server 后端,我是否存在安全漏洞?

Joh*_*han 3 ms-access sql-server

我有一个 MS Access 前端,我想在 5-7 台计算机上安装它,以便他们可以访问存储在共享网络驱动器上的 SQL Server:

在此处输入图片说明

如果可能,它是否安全,我的数据是否会损坏?否则,我如何让 5-7 个用户使用接口同时访问 SQL Server?

非常感谢您的宝贵时间!

Sir*_*lot 7

是的,您可以使用 MS Access 作为 SQL Server 的前端。它很常见。我过去自己这样做过

不,Access 本身不会损坏数据。但是,您的 Access 应用程序需要设计为遵守 SQL Server 约束和规则。此外,您的应用程序将如何阻止用户犯一些简单的错误,例如在不允许的情况下删除记录。

我遇到的最常见的问题是处理并发。当 2 个客户端同时做一些事情时,比如插入一条记录。你让 Access 生成主键吗?还是让 SQL Server 管理它?无论哪种情况,在插入行后,如何确保每个客户端仍在处理同一行?

这是任何开发多用户系统的人的考虑因素。只是需要一些时间和思考。

一些建议:确保在 SQL Server 中定义主键。如果您不这样做,Access 将不允许您更新记录,因为它不能保证锁定单个记录。主键和索引对性能也有巨大的影响。

编辑:我刚刚更多地考虑了您的问题标题。您提到了“安全漏洞”。如果安全是一个问题,您需要考虑用户将如何连接到数据库。域认证?或 SQL 身份验证,以及您如何记录用户采取的操作。

  • 主键必须唯一,外键约束,唯一索引,数据必须适合数据类型。如果不遵守规则,SQL 将拒绝事务并返回错误访问。例如,如果您尝试插入具有相同主键的 2 行。这对 SQL 来说不是问题,但在访问时它会显示为错误。这就是 SQL 强制执行数据完整性的方式。 (2认同)

Mar*_*rco 5

如果他们可以通过插入、更新和/或删除权限直接访问表,那么他们可能会破坏您的数据。如果您通过限制访问权限或通过 MS-Access 应用程序来防止这种情况发生,那么他们可以/不应该破坏您的数据。

关于业务规则。根据维基百科:业务规则是定义或约束业务某些方面的规则,并且总是解析为真或假。. 这些规则可以在数据库中定义为,constraints但更经常由应用程序检查。例如,公司只能在特殊情况下才能向客户提供折扣。或者只有在没有未付款项的情况下才能删除客户。如果应用程序检查了业务规则,那么让某人直接访问具有更新和/或删除权限的表可能会破坏您的数据。