【问题标题】:Is there a way to disable Access cache security in CurrentProject.AccessConnection.Properties?有没有办法在 CurrentProject.AccessConnection.Properties 中禁用 Access 缓存安全性?
【发布时间】:2019-05-08 13:52:57
【问题描述】:

我正在开发一个 Access 数据库,该数据库通过 DSN ODBC 连接将表链接到 DB2 数据库。

所有表都使用相同的系统 DSN,因为它们都在同一个 DB2 数据库中。为了获得一组表,我使用带有一个用户 ID 和密码的系统 DSN “A”,而对于另一组表,我使用与第一组表相同的系统 DSN “A”,但使用另一个用户 ID和密码。

这对 Access 造成了严重破坏,因为如果我从第一个组打开一个表,它会缓存凭据,然后如果我尝试从第二个组打开一个表而不重新启动 Access,它会引发 Invalid credentials/username 错误。

使用这个answer 我能够解决它:我创建了两个不同的 System DSN ODBC 连接,一个用于每组表。这允许我在同一会话中打开任一组中的表而不会出现授权错误(例如,无需重新启动 Access)。

我想知道,Windows 10 和 Office 365 中是否有办法(通过 vba、AutoExec 宏、更改注册表、策略等)将 CurrentProject.AccessConnection.Properties("Cache Authentication") 的默认行为从 True 更改为 False

一旦打开数据库,这个属性就是readonly

所以我的另一个想法是:如果您打开一个缓存身份验证设置为 False 的远程数据库并将其添加到另一个数据库中的工作区,您可以通过 VBA 中的 DAO 在该“远程”数据库中运行查询吗?

例如:数据库“A”有所有链接到 DB2 的表。从另一个数据库“B”我打开数据库“A”并将其添加到数据库“B”的工作区,缓存身份验证设置为 false(OpenConnection?或OpenDatabase。一旦从数据库“B”打开数据库“A”,我是否能够使用引用数据库“A”中链接表的 VBA 在数据库“B”中运行动态查询(意味着没有存储过程)?

更新 根据Access 2003 VBA Programmer's Reference p.556,无法使用OpenConnection 指定高级选项

这个问题已经被问过好几次了:

【问题讨论】:

  • 所以你有一个工作流程。似乎已经回答了您自己的问题。
  • @June7 之类的。我可以完全在 Access DB 上工作,但想知道是否有办法禁用 Access 中的凭据缓存,遗憾的是,工作中,你知道,你有最小的工作解决方案,并像我的情况一样继续,希望有人会有如果可以禁用缓存,请给出答案。

标签: vba database ms-access authentication db2


【解决方案1】:

不幸的是,我不知道这是可能的。

但是,您可以(并且应该)采用少 DSN 连接。因此,这将消除使用 DSN 的需要。 (这几天很痛苦——尤其是在机器被锁定的情况下)。这将允许您更改登录/uid 而无需重新链接。

但是,如果您需要同时访问两个数据库,您仍然非常需要两组表。您也可以重新运行链接代码,但无疑您一直在避免重新链接,并且您只想交换 DSN。

因此,您无需重新链接即可切换用户/通行证。但是,如果你需要切换你指向的数据库呢?没有办法解决这个问题 - 您必须重新链接表格。

因此,只需一组链接表,您就可以再次登录(使用不同的用户/ID),但要切换您指向的数据库,您必须重新链接。

不,除非退出并重新加载访问权限,否则无法清除密码缓存。

【讨论】:

  • 谢谢,我尝试使用 DSN-Less 表,我能够链接到它们并正确打开它们。但是密码缓存仍然发生,所以我无法走这条路。
  • 您的问题值得一试!使用 Access + 16 年,并且使用密码/uid 缓存技巧的时间也差不多。如前所述,您可以执行登录,并将它们添加到缓存中,但没有办法不重新启动应用程序以将其清除。您也许可以执行重新链接代码来交换 DSN- 但无论如何您只是重新链接。根本没有办法解决这个问题,因为您无法清除缓存,这无疑是/是您提出问题的动机。很想给出一个不同的答案 - 但它是“不”,你不能清除缓存。
猜你喜欢
  • 1970-01-01
  • 2015-06-09
  • 2022-01-04
  • 1970-01-01
  • 2014-11-17
  • 2013-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多