Sql server 无法初始化OLE DB provider的数据源对象;Microsoft.ACE.OLEDB.12.0“;“用于链接服务器”;(无效)“;(在存储过程/包/作业中使用)
我在尝试运行使用OpenRowSet使用OLEDB从Excel文件提取数据的SSIS包时收到此消息 我尝试了StackOverflow上提到的许多不同的解决方案,包括:Sql server 无法初始化OLE DB provider的数据源对象;Microsoft.ACE.OLEDB.12.0“;“用于链接服务器”;(无效)“;(在存储过程/包/作业中使用),sql-server,oledb,Sql Server,Oledb,我在尝试运行使用OpenRowSet使用OLEDB从Excel文件提取数据的SSIS包时收到此消息 我尝试了StackOverflow上提到的许多不同的解决方案,包括: 重新安装OLEDB驱动程序 检查临时文件夹的访问权限(我将临时文件夹系统变量更改为一个特定的文件夹,而不是通过用户名进行动态更改+授予每个人对该文件夹的访问权限) 在查询窗口中检查OpenRowSet查询的执行情况/执行使用它的存储过程/执行引用存储过程的包/执行引用上述包的作业-在我的情况下,我可以让查询作为查询直接运行,我
- 重新安装OLEDB驱动程序
- 检查临时文件夹的访问权限(我将临时文件夹系统变量更改为一个特定的文件夹,而不是通过用户名进行动态更改+授予每个人对该文件夹的访问权限)
- 在查询窗口中检查OpenRowSet查询的执行情况/执行使用它的存储过程/执行引用存储过程的包/执行引用上述包的作业-在我的情况下,我可以让查询作为查询直接运行,我仅以管理员身份打开SSMS
下面是帮助我的答案(我在网上找不到任何地方…)最后我发现我需要更改本地windows用户组成员身份 sql server代理作业使用代理运行,代理使用引用windows帐户的凭据 在我们的例子中,STG windows帐户是Administrator的一部分,但在PRD上它只在用户中存在(这就是为什么模式比较在SQL级别没有显示任何差异-这是windows操作系统的问题) 尽管错误涉及oledb驱动程序,并且我们已授予对TMP/TEMP和文件位置的所有访问权限,但我们需要在计算机管理中更改用户访问权限以修复此问题 我们两个人花了三天时间来解决这个问题,希望这能帮助其他人