如何恢复或重置SSIS包密码?

Fir*_*aad 6 sql-server passwords ssis etl

我有一些SSIS软件包受到密码保护(它们的保护级别显然是EncryptAllWithPassword)是由离开公司并且无法再访问的开发人员,并且尝试打开它们会出现以下错误,因为密码不能供应:

加载'Package.dtsx'时出错:无法删除包含错误的包保护错误0xC0014037"包使用密码加密.密码未指定或不正确.".这发生在CPackage :: LoadFromXML方法中.

有没有办法打开这些包裹?我可以访问最初用于创建这些软件包的管理员帐户,并且可以使用同一个人加密的其他软件包,但使用我知道的其他密码.

我已经联系了当地的微软代表,并且到目前为止他们只将我链接到一个描述如何设置或更改密码的页面,这无济于事,因为我需要先打开包或提供旧密码.有没有人之前处于类似的情况或知道解决这个问题的方法?

小智 17

执行以下查询

SELECT sjs.command
FROM msdb.dbo.sysjobs sj
JOIN msdb.dbo.sysjobsteps sjs ON sj.job_id = sjs.job_id
WHERE sj.name = 'your package name'
Run Code Online (Sandbox Code Playgroud)

在结果视图中

检查文本"/ DECRYPT",接下来的字符串是密码


小智 5

使用此查询查找您的包裹密码:

SELECT step.command
FROM msdb.dbo.sysjobs job
JOIN msdb.dbo.sysjobsteps step ON job.job_id = step.job_id
WHERE step.command like '%Your Package Name%'
Run Code Online (Sandbox Code Playgroud)

在结果中,唯一显示的列是命令,在该文本中查找/ DECRYPT,下一个字符串将是用引号引起来的密码。


Mic*_*tin 2

我认为如果使用EncryptAllWithPassword,就没有任何方法可以恢复包,整个包都是加密的,没有密码就无法解码。当然,人们可以尝试密码猜测或字典攻击,希望开发人员使用弱密码。

如果是 EncryptSensitiveWithPassword - 您可以打开然后重新输入连接字符串密码。