如何在 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 访问令牌?