Bạn hiện đang ngoại tuyến, hãy chờ internet để kết nối lại

Gói phần mềm SSIS không chạy khi được gọi là từ một SQL Server đại lý công việc bước

QUAN TRỌNG: Bài viết này được dịch bằng phần mềm dịch thuật của Microsoft và có thể được Cộng đồng Microsoft chỉnh sửa lại thông qua công nghệ CTF thay vì một biên dịch viên chuyên nghiệp. Microsoft cung cấp các bài viết được cả biên dịch viên và phần mềm dịch thuật thực hiện và cộng đồng chỉnh sửa lại để bạn có thể truy cập vào tất cả các bài viết trong Cơ sở Kiến thức của chúng tôi bằng nhiều ngôn ngữ Tuy nhiên, bài viết do máy dịch hoặc thậm chí cộng đồng chỉnh sửa sau không phải lúc nào cũng hoàn hảo. Các bài viết này có thể chứa các sai sót về từ vựng, cú pháp hoặc ngữ pháp, Microsoft không chịu trách nhiệm về bất kỳ sự thiếu chính xác, sai sót hoặc thiệt hại nào do việc dịch sai nội dung hoặc do hoạt động sử dụng của khách hàng gây ra.

Nhấp chuột vào đây để xem bản tiếng Anh của bài viết này: 918760
Triệu chứng
Khi bạn gọi một gói Microsoft SQL Server 2005 hội nhập bản ghi dịch vụ (SSIS) từ một SQL Server đại lý công việc bước, các gói SSIS không chạy. Tuy nhiên, nếu bạn không chỉnh sửa các gói SSIS, nó sẽ chạy thành công bên ngoài đại lý SQL Server.
Giải pháp
Để giải quyết vấn đề này, sử dụng một trong những phương pháp sau đây. Các phương pháp thích hợp nhất phụ thuộc vào môi trường và lý do mà các gói thất bại. Lý do mà các gói phần mềm có thể đã không như sau:
  • Trương mục người dùng được sử dụng để chạy các gói dưới đại lý SQL Server khác với tác giả gốc của gói.
  • Trương mục người dùng không có quyền cần thiết để thực hiện kết nối hoặc truy nhập tài nguyên bên ngoài các gói SSIS.
Các gói phần mềm có thể không chạy trong các tình huống sau:
  • người dùng hiện thời không thể giải mã bí mật từ các gói phần mềm. Trường hợp này có thể xảy ra nếu các tài khoản hiện tại hoặc tài khoản thực hiện khác nhau từ tác giả ban đầu của gói, và các gói phần mềm ProtectionLevel bất động sản thiết lập không cho phép người dùng hiện tại giải mã bí mật trong các gói phần mềm.
  • Một kết nối SQL Server sử dụng an ninh tích hợp không thành công vì người dùng hiện thời không có quyền như yêu cầu.
  • Truy nhập tệp thất bại vì người dùng hiện thời không có các quyền cần thiết để viết để chia sẻ tập tin Bộ quản lí ghép nối truy cập. Ví dụ, trường hợp này có thể xảy ra với nhà cung cấp kí nhập văn bản mà không sử dụng một tên đăng nhập và mật khẩu. Kịch bản này cũng có thể xảy ra với bất cứ công việc phụ thuộc vào Bộ quản lí ghép nối tập tin, chẳng hạn như một nhiệm vụ SSIS hệ thống tệp.
  • Một kiểm nhập dựa trên cấu hình gói phần mềm SSIS sử dụng khóa registry HKEY_CURRENT_USER. Khóa registry HKEY_CURRENT_USER được dành riêng cho người dùng.
  • Một nhiệm vụ hoặc một người Bộ quản lí ghép nối yêu cầu tài khoản người dùng hiện tại có quyền đúng.
Phương pháp 1: Sử dụng một tài khoản ủy quyền đại lý SQL Server
Tạo một tài khoản ủy quyền đại lý SQL Server. Trương mục Ủy quyền này phải sử dụng một ủy nhiệm cho phép đại lý SQL Server chạy công việc như là tài khoản mà tạo ra các gói hoặc như là một tài khoản có quyền như yêu cầu.

Phương pháp này hoạt động để giải mã bí mật và đáp ứng các yêu cầu quan trọng của người sử dụng. Tuy nhiên, phương pháp này có thể có giới hạn thành công bởi vì các gói phần mềm SSIS sử dụng phím liên quan đến người sử dụng hiện tại và máy tính hiện tại. Vì vậy, nếu bạn di chuyển các gói đến máy tính khác, phương pháp này có thể vẫn không, ngay cả khi bước công việc sử dụng tài khoản chính xác proxy.

Phương pháp 2: Thiết lập sở hữu SSIS gói ProtectionLevel để ServerStorage
Thay đổi thuộc tính gói phần mềm SSIS ProtectionLevel để ServerStorage. cài đặt chuyên biệt này mua sắm các gói trong một bộ máy cơ sở dữ liệu SQL Server và cho phép kiểm soát truy cập thông qua các vai trò bộ máy cơ sở dữ liệu SQL máy chủ.

Phương pháp 3: Thiết lập sở hữu SSIS gói ProtectionLevel để EncryptSensitiveWithPassword
Thay đổi thuộc tính gói phần mềm SSIS ProtectionLevel để EncryptSensitiveWithPassword. cài đặt chuyên biệt này sử dụng một mật khẩu để mã hóa. Sau đó, bạn có thể thay đổi đại lý SQL Server công việc bước dòng lệnh để bao gồm các mật khẩu này.

Phương pháp 4: Tập tin cấu hình gói phần mềm SSIS sử dụng
Sử dụng gói phần mềm SSIS cấu hình tập tin để lưu trữ thông tin nhạy cảm, và sau đó lưu trữ các tập tin cấu hình trong thư bảo đảm. Sau đó bạn có thể thay đổi các tài sản ProtectionLevel để DontSaveSensitive vì vậy mà các gói phần mềm không được mã hóa và không cố gắng tiết kiệm bí mật để các gói phần mềm. Khi bạn chạy các gói SSIS, các thông tin cần thiết được nạp từ các tập tin cấu hình.Đảm bảo rằng các tập tin cấu hình được đầy đủ bảo vệ nếu chúng chứa thông tin nhạy cảm.

Cách 5: Tạo ra một mẫu gói
Cho một giải pháp lâu dài, tạo ra một khuôn mẫu gói mà sử dụng một mức độ bảo vệ khác nhau từ các thiết lập mặc định. Vấn đề này sẽ không xảy ra trong tương lai gói.
Tình trạng
Hành vi này là do thiết kế.
Thông tin nâng cao

Các bước để sao chép các vấn đề

  1. Đăng nhập như một người sử dụng những người không phải là một phần của nhóm SQLServer2005SQLAgentUser. Ví dụ, bạn có thể tạo một người dùng cục bộ.
  2. Tạo một gói phần mềm SSIS, và sau đó thêm một nhiệm vụ ExecuteSQL. Sử dụng một trình quản lý kết nối OLE DB để các tập tin địa phương msdb bằng cách sử dụng chuỗi sau đây: 'Windows xác thực'-SQLSourceType: "Trực tiếp đầu vào"-SQLStatement: "sp_who"
  3. Chạy các gói để đảm bảo rằng nó chạy thành công.
  4. Nhận thấy rằng các tài sản ProtectionLevel được thiết lập để EncryptSensitiveWithPassword.
  5. Tạo một việc làm đại lý SQL Server và một bước công việc. Trong các Chạy như danh sách, hãy nhấp vào Dịch vụ đại lý SQL Server để chạy các bước công việc.
Các văn bản trong SQL Server đại lý công việc Lược sử sẽ hiển thị thông tin giống như sau:

Thực hiện như là người dùng: Miền\Tên người dùng. Thực hiện gói đã thất bại. Bước đầu đã thất bại.

Giải mã bí mật gói

Các thiết lập mặc định cho các gói phần mềm SSIS bất động sản ProtectionLevel là EncryptSensitiveWithUserKey. Khi các gói phần mềm được lưu, SSIS mã hóa chỉ những phần của gói có chứa các thuộc tính được đánh dấu "nhạy cảm," chẳng hạn như mật khẩu, tên người dùng và kết nối dây. Vì vậy, khi các gói phần mềm được nạp lại, người dùng hiện thời phải đáp ứng các yêu cầu mật mã hoá cho các thuộc tính nhạy cảm để được giải mã. Tuy nhiên, người dùng hiện thời không phải đáp ứng các yêu cầu mã hóa để tải các gói phần mềm. Khi bạn chạy các gói qua một đại lý SQL Server công việc bước, tài khoản mặc định là tài khoản Dịch vụ đại lý SQL Server. Trương mục mặc định này rất có thể là một người sử dụng khác nhau hơn so với các tác giả gói. Vì vậy, bước công việc của đại lý SQL Server có thể tải và bắt đầu chạy bước công việc, nhưng các gói không bởi vì nó không thể hoàn tất kết nối. Ví dụ, các gói phần mềm không thể hoàn tất kết nối OLE DB hoặc kết nối FTP. Các gói phần mềm không thành công bởi vì nó không thể giải mã các thông tin mà nó phải có kết nối.

Quan trọng Xem xét quá trình phát triển và môi trường để xác định các tài khoản đó là cần thiết và sử dụng trên mỗi máy tính. Thiết lập EncryptSensitiveWithUserKey của nhà ProtectionLevel là một thiết lập mạnh mẽ. Thiết đặt này không nên được giảm giá vì nó gây ra việc triển khai phức tạp lúc đầu tiên. Bạn có thể mã hóa các gói khi bạn đang đăng nhập vào tài khoản thích hợp. Bạn cũng có thể sử dụng tiện ích dấu nhắc lệnh Dtutil.exe SSIS để thay đổi mức độ bảo vệ bằng cách sử dụng một tập tin .cmd và hệ thống chỉ huy đại lý SQL Server. Ví dụ, thực hiện theo các bước sau. Bởi vì bạn có thể sử dụng tiện ích Dtutil.exe trong tập tin thực thi và vòng, bạn có thể làm theo các bước sau đối với vài gói phần mềm cùng một lúc.
  1. Sửa đổi các gói phần mềm mà bạn muốn mật mã hóa bằng cách sử dụng một mật khẩu.
  2. Sử dụng tiện ích Dtutil.exe thông qua một Hệ điều hành (cmd Exec) Đại lý SQL Server công việc bước để thay đổi các tài sản ProtectionLevel để EncryptSensitiveWithUserKey. Quá trình này liên quan đến việc giải mã các gói phần mềm bằng cách sử dụng mật khẩu, sau đó re-encrypting các gói phần mềm. Chính người dùng được sử dụng để mã hóa gói là bước công việc đại lý SQL Server thiết lập trong cácChạy như danh sách.

    Lưu ý Bởi vì chính bao gồm tên người dùng và tên máy tính, tác dụng của di chuyển các gói đến máy tính khác có thể được hạn chế.

Hãy chắc chắn rằng bạn có chi tiết lỗi thông tin về sự thất bại gói SSIS

Thay vì dựa vào các chi tiết giới hạn trong lịch sử công việc SQL Server đại lý, bạn có thể sử dụng SSIS đăng nhập để đảm bảo rằng bạn có lỗi thông tin về sự thất bại gói SSIS. Bạn cũng có thể chạy các gói phần mềm bằng cách sử dụng lệnh hệ thống exec thay vì lệnh hệ thống SSIS.

Về SSIS đăng nhập

SSIS đăng nhập và đăng nhập nhà cung cấp cho phép bạn nắm bắt thông tin chi tiết về thực hiện gói và thất bại. Theo mặc định, các gói không đăng thông tin. Bạn phải cấu hình gói để đăng thông tin. Khi bạn đặt cấu hình gói để đăng thông tin, thông tin chi tiết được hiển thị tương tự như sau đây. Trong trường hợp này, bạn sẽ biết rằng nó là một vấn đề cấp phép:

OnError, DOMAINNAME, DOMAINNAME\USERNAME, FTP Task,{C73DE41C-D0A6-450A-BB94-DF6D913797A1},{2F0AF5AF-2FFD-4928-88EE-1B58EB431D74},4/28/2006 1:51:59 PM, 28 tháng 4 năm 2006:1:51: 59 PM,-1073573489, 0 x, không thể để kết nối với hệ phục vụ FTP bằng cách sử dụng "quản lý kết nối FTP".

OnError, DOMAINNAME, DOMAINNAME\USERNAME, thực hiện SQL Task,{C6C7286D-57D4-4490-B12D-AC9867AE5762},{F5761A49-F2F9-4575-9E2B-B3D381D6E1F3},4/28/2006 4:07:00 PM, 28 tháng 4 năm 2006:4:07: 00 PM,-1073573396, x 0, thất bại trong việc có được kết nối "user01.msdb". Kết nối có thể không được cấu hình đúng hoặc bạn có thể không có sự cho phép thích hợp trên kết nối này.

Về các lệnh hệ thống exec và sản lượng thông tin

Bằng cách sử dụng phương pháp tiếp cận lệnh hệ thống exec, bạn thêm giao diện điều khiển tiết đăng nhập thiết bị chuyển mạch dòng lệnh SSIS để gọi tập tin thực thi lệnh Dtexec.exe SSIS. Ngoài ra, bạn sử dụng các tính năng nâng cao công việc của tập tin đầu ra. Bạn cũng có thể sử dụng các Bao gồm các bước ra trong lịch sử tùy chọn để chuyển hướng các thông tin đăng nhập vào một tập tin hoặc đại lý SQL Server Lược sử công việc.

Sau đây là một ví dụ về một dòng lệnh:

dtexec.exe /FILE "C:\_work\SSISPackages\ProtectionLevelTest\ProtectionLevelTest\AgentTesting.dtsx" /MAXCONCURRENT " -1 " /CHECKPOINTING OFF  /REPORTING V  /CONSOLELOG NCOSGXMT


Đăng nhập Console trở về chi tiết giống như sau:

Error: 2006-04-27 18:13:34.76   Code: 0xC0202009   Source: AgentTesting Connection manager "(local).msdb"   Description: An OLE DB error has occurred. Error code: 0x80040E4D.An OLE DB record is available.  Source: "Microsoft SQL Native Client"  Hresult: 0x80040E4D  Description: "Login failed for user 'DOMAINNAME\username'.".End Error


Error: 2006-04-28 13:51:59.19   Code: 0xC0016016   Source:     Description: Failed to decrypt protected XML node "DTS:Property" with error 0x80070002 "The system cannot find the file specified.". You may not be authorized to access this information. This error occurs when there is a cryptographic error. Verify that the correct key is available.End Error


Log:     Name: OnError     Computer: COMPUTERNAME     Operator: DOMAINNAME\username     Source Name: Execute SQL Task     Source GUID: {C6C7286D-57D4-4490-B12D-AC9867AE5762}     Execution GUID: {7AFE3D9E-5F73-42F0-86FE-5EFE264119C8}     Message: Failed to acquire connection "(local).msdb". Connection may not be configured correctly or you may not have the right permissions on this connection.     Start Time: 2006-04-27 18:13:34     End Time: 2006-04-27 18:13:34End Log
Tham khảo
Để biết thêm chi tiết về một vấn đề tương tự, nhấp vào số bài viết sau để xem bài viết trong cơ sở kiến thức Microsoft:
904800Bạn nhận được một thông báo lỗi "Lỗi tải" khi bạn cố gắng để chạy một gói SQL Server 2005 hội nhập dịch vụ trong SQL Server 2005
Để biết thêm chi tiết về làm thế nào để sử dụng tiện ích Dtutil.exe trong hàng loạt hoạt động, nhấp vào số bài viết sau để xem bài viết trong cơ sở kiến thức Microsoft:
906562Làm thế nào để sử dụng tiện ích dtutil (Dtutil.exe) để thiết lập mức độ bảo vệ của một loạt các dịch vụ SQL Server tích hợp (SSIS) gói trong SQL Server 2005
Để biết thêm chi tiết về làm thế nào để tạo gói mẫu, hãy nhấp vào số bài viết sau để xem bài viết trong cơ sở kiến thức Microsoft:
908018Làm thế nào để tạo ra một mẫu gói trong SQL Server kinh doanh tình báo phát triển Studio


Để biết thêm chi tiết về SSIS gói bảo mật và tài sản ProtectionLevel , xem chủ đề "An ninh xem xét cho hội nhập Services" trong SQL Server 2005 sách trực tuyến.

Thật không may, người dùng không phải nhận thức được rằng mặc định đại lý công việc bước cài đặt đặt chúng trong trạng thái này.Để biết thêm thông tin về đại lý SQL Server proxy và SSIS, hãy xem các chủ đề sau trong SQL Server 2005 sách trực tuyến:
  • Lập kế hoạch thực hiện gói trong đại lý SQL Server
  • Tạo đại lý SQL Server proxy

Cảnh báo: Bài viết này được dịch tự động

Thuộc tính

ID Bài viết: 918760 - Xem lại Lần cuối: 07/12/2013 08:19:00 - Bản sửa đổi: 2.0

Microsoft SQL Server 2008 Service Pack 1, Microsoft SQL Server 2008 Developer, Microsoft SQL Server 2008 Enterprise, Microsoft SQL Server 2008 Standard, Microsoft SQL Server 2005 Service Pack 3, Microsoft SQL Server 2005 Service Pack 2, Microsoft SQL Server 2005 Developer Edition, Microsoft SQL Server 2005 Enterprise Edition, Microsoft SQL Server 2005 Enterprise Edition for Itanium-based Systems, Microsoft SQL Server 2005 Enterprise X64 Edition, Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Standard X64 Edition, Microsoft SQL Server 2005 Standard Edition for Itanium-based Systems

  • kbsqlsetup kbprb kbsql2005ssis kbsql2005setup kbexpertiseinter kbexpertiseadvanced kbtshoot kbmt KB918760 KbMtvi
Phản hồi