Joh*_*han 3 ms-access sql-server
我有一个 MS Access 前端,我想在 5-7 台计算机上安装它,以便他们可以访问存储在共享网络驱动器上的 SQL Server:
如果可能,它是否安全,我的数据是否会损坏?否则,我如何让 5-7 个用户使用接口同时访问 SQL Server?
非常感谢您的宝贵时间!
是的,您可以使用 MS Access 作为 SQL Server 的前端。它很常见。我过去自己也这样做过。
不,Access 本身不会损坏数据。但是,您的 Access 应用程序需要设计为遵守 SQL Server 约束和规则。此外,您的应用程序将如何阻止用户犯一些简单的错误,例如在不允许的情况下删除记录。
我遇到的最常见的问题是处理并发。当 2 个客户端同时做一些事情时,比如插入一条记录。你让 Access 生成主键吗?还是让 SQL Server 管理它?无论哪种情况,在插入行后,如何确保每个客户端仍在处理同一行?
这是任何开发多用户系统的人的考虑因素。只是需要一些时间和思考。
一些建议:确保在 SQL Server 中定义主键。如果您不这样做,Access 将不允许您更新记录,因为它不能保证锁定单个记录。主键和索引对性能也有巨大的影响。
编辑:我刚刚更多地考虑了您的问题标题。您提到了“安全漏洞”。如果安全是一个问题,您需要考虑用户将如何连接到数据库。域认证?或 SQL 身份验证,以及您如何记录用户采取的操作。
如果他们可以通过插入、更新和/或删除权限直接访问表,那么他们可能会破坏您的数据。如果您通过限制访问权限或通过 MS-Access 应用程序来防止这种情况发生,那么他们可以/不应该破坏您的数据。
关于业务规则。根据维基百科:业务规则是定义或约束业务某些方面的规则,并且总是解析为真或假。. 这些规则可以在数据库中定义为,constraints
但更经常由应用程序检查。例如,公司只能在特殊情况下才能向客户提供折扣。或者只有在没有未付款项的情况下才能删除客户。如果应用程序检查了业务规则,那么让某人直接访问具有更新和/或删除权限的表可能会破坏您的数据。