如何在 Oracle 身份验证中使用 MS Access 连接字符串

Posted

技术标签:

【中文标题】如何在 Oracle 身份验证中使用 MS Access 连接字符串【英文标题】:How to use MS Access connection string with Oracle authentication 【发布时间】:2021-10-04 15:05:04 【问题描述】:

使用 C# 和 ADO.NET,我正在尝试自动生成当前在 MS Access 数据库中作为宏运行的报告。当您在 Access 中执行宏时,它会提示您输入 Oracle 凭据,然后在 Excel 工作表中创建报告。

我的代码运行良好,我能够创建这些报告,但是当我的代码执行时,它会提示输入 Oracle 凭据。

这个新应用程序将在夜间运行,并且不会有用户在场输入 Oracle 凭据。

我尝试创建两个单独的连接字符串并同时打开两个连接,但它当然不起作用。然后我尝试使用 Oracle 用户 ID 和密码创建单个连接字符串,如下所示,但它也失败了。

<add key="ConnectionString" value="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\ProjectDocs\CE_REPORTS.accdb;User ID=JOHNDOE;Jet OLEDB:Encrypt Database=True;Jet OLEDB:Database Password=*********"/> 

这是我第一次处理不使用自己的身份验证功能的 Access 数据库。请告诉我如何解决这个问题。

谢谢

【问题讨论】:

检查您的连接字符串可能值得。这可能会有所帮助:connectionstrings.com 您将连接字符串发布到 Access,但希望打开与 Oracle 数据库的连接。这没有意义。 Access 应该打开与 Oracle 的连接;在 Access 中包含代码以执行此操作。 【参考方案1】:

嗯,你有你的 .net 部分,它当然可以创建自己的到 oracle 的连接(它应该)。

这确实引出了一个问题,即为什么要在此处引入 .net?如果您只是从 .net 读取/写入 Access 数据表,那很好。但是您还可以使用 Access 报告。 (所以它引出了一个问题,在这里使用 .net 有什么优势???)。

无论如何,如果您启动访问,请使用链接表管理器,并在链接过程中选中此框:

因此,当您从 .net 创建 COM 对象(自动副本)时,不应启动 Access 和使用这些链接表。

使用 Access UI 创建到 Oracle 的链接表。但是,REMEMBER 访问有一个复杂的缓存系统。如果您执行从 Access 登录到 oracle?然后链接表不需要包含用户名/密码。这意味着实际上您可以从 Access 链接表(但没有用户/密码),然后从 Access(VBA 代码)执行一次登录。您正在使用的 Access 的 .net 自动机实例也可以调用此登录例程。

但是,如果您在访问中设置了正确的链接表,并且在该链接过程中检查了上述“记住”密码,则不会出现登录 oracle 的提示。

【讨论】:

以上是关于如何在 Oracle 身份验证中使用 MS Access 连接字符串的主要内容,如果未能解决你的问题,请参考以下文章

使用Python通过Windows身份验证连接到MS SQL Server?

Hibernate和Oracle通过Windows身份验证连接

使用 kerberos 和 AD 的 Oracle 数据库身份验证

如何通过 Firebase Google 身份验证获取带有刷新令牌的 YouTube 数据 API 访问令牌?

为啥我使用 Windows 身份验证通过 AzureML dataprep 登录 MS SQL 失败?

使用 ASP.net 表单身份验证保护 MS Access 前端应用程序