Microsoft 已经打破了这一点,因此即使使用 DTUTIL 实用程序来更改包保护也不能修复项目文件元数据。
我必须对项目文件申请手动修复,以将存储包的包保护级别副本的元数据更改为与项目和包的相同。
仔细思考?可能不是。
获取包列表(已经部署并创建 DTUTIL 语句。将它们放入批处理文件并从命令行执行。
这仅适用于已部署的包,因为我们正在查看 SSISDB 而不是 Project 文件夹
USE SSISDB
DECLARE @projName VARCHAR(250) = 'Sales'
DECLARE @FolderPath VARCHAR(1000) = 'E:\ssis_' + @projName
DECLARE @DtutilString VARCHAR(1000) =
'"C:\Program Files\Microsoft SQL Server\130\DTS\Binn\dtutil.exe"/file "'+ @FolderPath +'\XXX" /encrypt file;"'+ @FolderPath +'\XXX";0 /quiet'
SELECT DISTINCT
REPLACE(@DtutilString, 'XXX', pack.[name])
-- SELECT *
FROM internal.packages AS pack
INNER JOIN
[internal].[projects] AS proj
ON pack.project_id = proj.project_id
WHERE proj.name = 'ssis_' + @projName