因此,我正在设置一个数据流,将数据从Access DB拉入我的Datafactory,然后推送到lake/datawarehouse。
我已经在有文件的虚拟机上设置了一个集成运行时。目前我正在使用自己的凭据来尝试使连接正常工作。
我开始使用此指南:https://learn.microsoft.com/en-us/azure/data-factory/connector-microsoft-access?tabs=data-工厂
把事情安排好。这是连接字符串:
Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=C:Users<myusername>Documentstest_access.accdb;
雅典是基本的,用我的用户名和密码。我已经在Datafactory中测试了常规文件系统链接服务的凭据,它们运行良好。
我已经在虚拟机上安装了Access并打开了数据库。已检查并重新安装驱动程序,确保Integration Runtime用户和我的用户可以访问HKEY_LOCAL_MACHINE\SOFTWARE\ODBC注册表项。集成运行时正在为数据工厂上的其他文件/链接服务工作。所有这些都说,我不断得到这个错误:
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.
我只需要读取权限。我保存了一个副本以供参考,因此它不会被其他用户锁定。我已经登录到虚拟机并与该用户打开了相同的数据库,所以这似乎不可能是权限错误。我不确定下一步能做什么。
我发现,无论我输入什么用户/密码组合,我仍然会收到相同的错误,所以可能倾向于驱动程序问题?
我想明白了。
NT ServiceDIAHostService
帐户是Integration Runtime的服务帐户。现在,即使在Datafactory
中,也需要指定将打开Access数据库的特定用户。事实证明,运行IR的服务帐户也需要对文件进行完全(读取和写入(访问,才能成功连接。
我想读取文件,而不仅仅是本地文件,所以我需要使用自己的用户运行IR。因此,我重新安装了IR,授予了我自己的用户对IR配置文件的权限,确保该用户和Datafactory
上的用户输入对access数据库具有读写访问权限,最终一切正常。