1

所以我正在设置一个数据流来从 Access DB 中提取数据并进入我的 Datafactory,然后推送到湖/数据仓库。

我已经在上面有文件的 VM 上设置了一个集成运行时。我目前正在使用自己的凭据来尝试使连接正常工作。

我开始使用本指南: https ://docs.microsoft.com/en-us/azure/data-factory/connector-microsoft-access?tabs=data-factory

把事情做好。这是连接字符串:

Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=C:\Users\<myusername>\Documents\test_access.accdb;

Athentication 是基本的,使用我的用户名和密码。我已经在 Datafactory 中测试了常规文件系统链接服务的凭据,它们工作正常。

我已经在 VM 上安装了 Access 并打开了数据库。检查并重新安装驱动程序,确保集成运行时用户和我的用户可以访问 HKEY_LOCAL_MACHINE\SOFTWARE\ODBC 注册表项。集成运行时适用于 datafactory 上的其他文件/链接服务。这一切都说,我不断收到这个错误:

Error code
9603
Details
ERROR [HY000] [Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key Temporary (volatile) Ace DSN for process 0x83c Thread 0x132c DBC 0x6c7884e8 Jet'. ERROR [IM006] [Microsoft][ODBC Driver Manager] Driver's SQLSetConnectAttr failed ERROR [HY000] [Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key Temporary (volatile) Ace DSN for process 0x83c Thread 0x132c DBC 0x6c7884e8 Jet'. ERROR [HY000] [Microsoft][ODBC Microsoft Access Driver] The Microsoft Access database engine cannot open or write to the file '(unknown)'. It is already opened exclusively by another user, or you need permission to view and write its data. ERROR [HY000] [Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key Temporary (volatile) Ace DSN for process 0x83c Thread 0x132c DBC 0x6c7884e8 Jet'. ERROR [HY000] [Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key Temporary (volatile) Ace DSN for process 0x83c Thread 0x132c DBC 0x6c7884e8 Jet'. ERROR [HY000] [Microsoft][ODBC Microsoft Access Driver] The Microsoft Access database engine cannot open or write to the file '(unknown)'. It is already opened exclusively by another user, or you need permission to view and write its data. Activity ID: 1ac4d9fc-17ee-4e0d-b5cc-4e0a2d6931da.

我只需要读取权限。我已经保存了一份副本以供参考,因此它没有被其他用户锁定。我已经登录到虚拟机并与该用户打开了同一个数据库,所以它看起来不像是权限错误。我不确定接下来我可以尝试什么。

我发现无论我输入什么用户/密码组合,我仍然会遇到同样的错误,所以可能倾向于驱动程序问题?

4

1 回答 1

0

我想到了。

NT Service\DIAHostService帐户是集成运行时的服务帐户。现在,即使在 中Datafactory,您也需要指定将打开 Access 数据库的特定用户。事实证明,运行 IR 的服务帐户需要对文件的完全(读取和写入)访问权限才能使连接成功。

我想读取文件——而不仅仅是本地——所以我需要使用我自己的用户运行 IR。所以我重新安装了 IR,授予我自己的用户对 IR 配置文件的权限,确保该用户和用户输入对DatafactoryAccess 数据库具有读写访问权限,最后一切正常。

于 2021-12-20T06:12:28.940 回答