【发布时间】:2018-10-14 22:47:38
【问题描述】:
我在一个由 10 名测试工程师组成的团队中工作,他们在网络服务器上共享一个通用 Access 2013 数据库。每个人都具有对数据库的读/写访问权限。任何人都可以随机打开数据库,向其中写入数据,然后关闭它。这些操作都是通过 Labview 代码“在幕后”向用户完成的。即用户将在 Labview 中启动特定测试,代码(在开始测试之前)打开共享数据库,将测试信息写入表,然后在开始测试之前将其关闭。我们现在有 4 个实例,有人会抱怨他们突然无法访问这个共享数据库。经过调查,我们发现数据库不知何故变成了一个只读文件,因此 Labview 对其写入的尝试失败了。我的问题不是“如何让数据库再次读/写”(我已经找到了关于该主题的其他帖子),而是为什么读/写数据库突然变成只读的?我们试图追查到失败的“关闭数据库”,但什么也没找到。每当发生这种情况时,都没有与 DB 关联的锁定 (.lck) 文件,因此它似乎没有被锁定。
你有什么想法吗?
提前致谢!
【问题讨论】:
-
是实际文件被更改为只读,还是只是在 Access 中以只读模式打开?
-
好点,当我打开数据库时,文件顶部有一个信息图标,上面写着“只读数据库已以只读方式打开。您只能更改链接表中的数据. 要进行设计更改,请保存数据库的副本”。
-
在可以“随机打开数据库”的 10 个用户之间,这是否还包括从 Access 中打开数据库(而不仅仅是通过 LabView 代码)?测试工程师是否可以打开数据库来更改数据库架构?从技术上讲,这可以在不打开 Access 的情况下完成,也可以使用数据定义库对象和方法。
-
您是否检查了包含文件夹的用户权限?他们不仅需要文件的读/写权限,还需要文件所在的文件夹。 LabView 代码运行的安全上下文是什么?它是否可以改变,即使对于单个测试工程师,可能在具有不同操作系统或网络安全配置的不同计算机上运行它?这方面有什么变化吗?
-
顺便说一句,你应该知道如何让它再次读/写并且对那个细节不感兴趣,但你仍然应该准确地分享你为解决这种情况所做的事情,即使你不知道为什么它正在发生。一个可行的解决方案可以潜在地指出原因,或者至少可以限制可能的原因。
标签: ms-access ms-access-2013 labview