2009-06-04 42 views
6

Tôi có một vài gói SSIS đã được bảo vệ bằng mật khẩu (mức bảo vệ của họ rõ ràng là EncryptAllWithPassword) bởi một nhà phát triển đã rời khỏi công ty và không thể truy cập được nữa, và cố gắng mở chúng cho lỗi sau vì mật khẩu có thể ' t được cung cấp:Cách khôi phục hoặc đặt lại mật khẩu gói SSIS?

lỗi tải 'Package.dtsx': không thể loại bỏ bảo vệ gói với lỗi 0xC0014037 "gói là được mã hóa với một mật khẩu mật khẩu đã không quy định, hoặc là không đúng.. ". Điều này xảy ra trong phương thức CPackage :: LoadFromXML.

Có cách nào để mở các gói này không? Tôi có quyền truy cập vào tài khoản quản trị viên ban đầu được sử dụng để tạo các gói này và có các gói khác được mã hóa bởi cùng một người nhưng sử dụng mật khẩu khác mà tôi biết.

Tôi đã liên hệ với đại diện Microsoft địa phương về vấn đề này và cho đến nay họ chỉ liên kết tôi với số a page describing how to set or change a password, điều này không giúp ích gì vì trước tiên tôi cần mở gói hoặc cung cấp mật khẩu cũ. Có ai ở trong tình huống tương tự trước đây hoặc biết cách giải quyết vấn đề này không?

+1

Ouch, tôi sẽ quan tâm để biết câu trả lời cho điều này cũng như tôi nghi ngờ nó không thể được thực hiện mà không có một số loại hack. Giờ đây không có nhiều trợ giúp nhưng bạn có thể cân nhắc sử dụng Trình quản lý khóa/mật khẩu an toàn trong nội bộ tổ chức của mình để tránh sự cố này trong tương lai. –

+0

Câu hỏi hay! Các bạn có sử dụng bất kỳ hình thức nào của nguồn an toàn không? Bạn có thể tìm thấy một phiên bản không được mã hóa ở đó và một số nhà phát triển thậm chí còn đặt một tệp lên bằng mật khẩu ... – RSolberg

Trả lời

2

Tôi không nghĩ có cách nào để khôi phục gói nếu EncryptAllWithPassword được sử dụng, toàn bộ gói được mã hóa và không thể được giải mã mà không có mật khẩu. Người ta có thể thử tất nhiên các cuộc tấn công mật khẩu hoặc từ điển hy vọng các nhà phát triển sử dụng mật khẩu yếu.

Nếu nó là EncryptSensitiveWithPassword - bạn có thể mở và sau đó chỉ cần nhập lại mật khẩu chuỗi kết nối.

1

Dường như gói cũng được lưu trữ trên SQL Server (cơ sở dữ liệu msdb), xuất nó từ Integration Services vào hệ thống tệp cho phép chúng tôi mở nó (với cảnh báo về việc mất dữ liệu nhạy cảm). Giải pháp này hoạt động hoàn hảo cho tình huống cụ thể này; chúng tôi chủ yếu cần biết những gì xảy ra trong các gói này.

+0

Giải pháp thay thế tốt. –

0

Tôi đồng ý với nhận xét của Michael về dự đoán mật khẩu hoặc tấn công từ điển như một cách tiếp cận tốt.

Tôi vừa đề xuất sử dụng môi trường điện toán đám mây như EC2 để phân chia và chinh phục ... nhưng sau đó tôi nhận ra bạn đang mắc kẹt trên cửa sổ!

+0

EC2 cũng chạy Windows. (http://aws.amazon.com/windows/) Và sau đó là Azure! (http://www.microsoft.com/azure/) – Michael

+1

để bạn đến! Thuê 1000 máy và crack mật khẩu. (và mật khẩu của ông chủ của bạn, mà ghét mật khẩu của đồng nghiệp, ...) – Pat

14

thực hiện truy vấn dưới đây

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' 

Trong Result Xem

kiểm cho các văn bản "/ giải mã", chuỗi kí tự sau tiếp theo là mật khẩu

+0

Cảm ơn bạn! Cảm ơn bạn! Cảm ơn bạn! –

+0

Cảm ơn bạn Venky, đó là giải pháp hoàn hảo cho tôi. – cymorg

+0

Cảm ơn bạn @Venky vì đã giúp giải pháp hoàn hảo cho vấn đề này – PS078

3

Sử dụng truy vấn này để tìm gói của bạn mật khẩu:

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%' 

Trong kết quả, cột duy nhất được chuyển là lệnh xem qua văn bản đó để/DECRYPT chuỗi tiếp theo sau khi nó sẽ là mật khẩu được kèm theo trong dấu ngoặc kép.

+0

Sự khác biệt giữa truy vấn của tôi và câu hỏi bên dưới là bạn phải đặt tên bước công việc thay vì tên gói. Mỏ sẽ tìm kiếm với tên gói. –

1

Chỉ, mở gói trong notepad và thay đổi mức độ bảo vệ khỏi 2 đến 1

<DTS:Property DTS:Name="ProtectionLevel">1</DTS:Property> 
-1

Thay đổi của gói để encrypt với sensitiveKey và tất cả sẽ hoạt động tốt. :)

Các vấn đề liên quan