VB.NET开发中存.mdb到共享驱动器实现多用户访问是否可行?
共享驱动器存储Access .mdb文件的访问问题解答
首先可以明确:只要权限配置正确,拥有共享驱动器访问权限的组织人员都可以正常访问.mdb内的数据,但需要满足几个必要前提,同时存在一些使用限制:
- 权限配置需要同时满足两层要求
- 共享文件夹的共享权限需对目标用户开放「读取/更改」权限,同时Windows本地NTFS权限也要给对应人员分配.mdb文件的读写权限,以及.mdb所在文件夹的写入权限——Access打开文件时会自动在同目录生成.ldb锁文件,没有文件夹写入权限的话会直接打开失败。
- 连接字符串需要用标准UNC路径
你的VB.NET程序中配置Access连接字符串时,要使用类似\\文件服务器名\共享文件夹名\你的数据库.mdb的UNC路径,不要使用本地映射盘符(比如Z:\数据.mdb),不同用户的盘符映射规则可能不一致,会导致数据库连接失败。 - 注意并发访问上限
.mdb是Access桌面级数据库格式,不是为高并发场景设计的,同时读写的用户数稳定超过10个时,极大概率出现锁冲突、数据不一致甚至数据库文件损坏的问题,如果你的组织人员规模较大,不建议采用这种架构。 - 额外注意运行环境适配
如果你的VB.NET程序编译为32位,需要所有用户的设备上都安装32位版Access Database Engine运行库,64位系统默认没有自带32位Access驱动,会出现数据库连接报错的问题。 - 风险提示
存放在公共共享文件夹的.mdb文件存在被用户误删、手动修改的风险,建议定期做自动备份,最好通过VB.NET程序做一层权限隔离,不要给用户开放.mdb源文件的直接访问入口。
内容的提问来源于stack exchange,提问作者Moodkiller
相关产品推荐
相关产品推荐

