SSIS无法连接受密码保护的Office 365 Access数据库(.accdb)
解决SSIS连接加密Office 365 Access数据库失败的问题
碰到过好多次这种SSIS连加密Access数据库失败的情况,给你列几个最靠谱的排查步骤,按顺序试,大概率能搞定:
先搞定驱动位数匹配的问题
这是最容易踩的坑!Office 365默认是64位,但如果你之前装过32位Office,可能残留了32位的ACE驱动。先确认你装的Microsoft.ACE.OLEDB.12.0是32位还是64位,然后去SSIS项目属性里找Run64BitRuntime:驱动是64位就设为True,32位就设为False。位数不匹配的话,连接肯定失败。别分开填参数,直接用完整连接字符串
有时候在连接管理器里单独填Jet OLEDB:Database Password会有解析bug,试试直接用完整的连接字符串:Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\你的数据库路径\你的数据库.accdb;Jet OLEDB:Database Password=你的密码;在SSIS连接管理器的「连接字符串」选项里直接粘贴这段内容,再测连接。
检查Office 365的信任中心限制
Office 365的安全机制可能阻止SSIS访问加密数据库:- 打开Access,点「文件」→「选项」→「信任中心」→「信任中心设置」
- 进「受信任位置」,把数据库所在文件夹加进去,记得勾选「允许受信任位置的子文件夹」
- 确认「禁用所有应用程序加载项」没被勾上,这个选项会影响驱动对数据库的访问权限
验证文件权限和锁定状态
- 确保运行SSIS的账户(不管是本地账户还是服务账户)有数据库所在文件夹的读写权限,权限不足经常会伪装成连接失败的错误
- 关掉所有打开这个数据库的Access窗口,再去任务管理器看看有没有
MSACCESS.EXE后台进程在跑,数据库被锁定时根本连不上
更新ACE驱动到对应版本
旧驱动和Office 365容易有兼容性问题,卸载现有驱动后,去微软官网下载最新的Microsoft Access Database Engine 2016 Redistributable,这个版本和Office 365适配得最好。
按这个顺序试下来,基本能解决大部分连接失败的问题。
内容的提问来源于stack exchange,提问作者sydney




