已部署SSIS包Oracle连接管理器报错“Access is denied”(0x80070005)
SSIS部署后代理执行Lookup组件权限问题排查方案
Oracle数据库侧权限缺失
代理账号需具备Oracle数据库的访问权限:包括Lookup组件要查询的目标表的SELECT权限,以及后续更新/插入操作对应的UPDATE/INSERT权限。之前仅配置了SSISDB和文件共享权限,Oracle侧的权限未配置是核心问题。若Oracle连接用Windows身份验证,需在Oracle中创建对应Windows用户并授权;若用SQL身份验证,需确保密码能正确解密。敏感信息解密配置遗漏
当使用EncryptSensitiveWithPassword时,部署包到SSISDB后,执行包的配置中必须指定解密密码,否则包无法解密Oracle连接的敏感信息(如密码),导致连接失败。若选择DontSaveSensitive,需将Oracle连接的敏感信息通过参数化或环境变量传入,VS中运行失败是因为未手动传入参数,部署后配置参数即可正常运行。代理账号本地权限不足
- 确保代理账号拥有读取Oracle客户端配置文件(如
tnsnames.ora)和访问Oracle客户端安装目录的权限,避免因无法读取配置导致连接失败。 - 检查代理账号是否被授予本地
Log on as a batch job权限(通过本地安全策略的“用户权限分配”配置),这是SSIS代理执行的必要权限。
- 确保代理账号拥有读取Oracle客户端配置文件(如
Lookup组件验证设置调整
在Lookup组件的属性中,将ValidateExternalMetadata设置为False,避免执行前验证Oracle连接时,因代理账号与开发账号权限差异提前触发报错。
内容的提问来源于stack exchange,提问作者Analytic Lunatic
相关产品推荐
相关产品推荐

