Thực thi gói:
Công cụ dữ liệu máy chủ SQL:
Bằng chứng xác thực người dùng mà SQL Server Data Tools (SSDT)
đang hoạt động sẽ được sử dụng để thực thi các gói được thực thi trong SSDT.
Trong Windows Start \ All Programs \ Microsoft SQL Server 2012, nếu bạn nhấp vào SQL Server Data Tools, nó sẽ chạy dưới thông tin đăng nhập của bạn. Để chạy trong tài khoản người dùng khác, bạn có thể nhấn Ctrl + Shift để chọn Run as different user
tùy chọn.
Dịch vụ danh mục tích hợp:
Khi bạn nhấp chuột phải vào một gói trong Integration Services Catalog \ SSISDB \ <Folder name> \ Projects \ <Project name> \ Packages \ <Package name>
và chọn Execute...
để chạy một gói. Gói sẽ chạy dưới thông tin đăng nhập được sử dụng để kết nối với SQL Server Management Studio.
Lưu ý rằng nếu bạn cố gắng chạy một gói bằng Xác thực Máy chủ SQL, bạn sẽ nhận được thông báo lỗi dưới đây:
Sau khi bạn nhấn Execute...
, SQL Server
quay một quy trình ISServerExec.exe
, khởi chạy Console Window Host
quy trình:
ISServerExec.exe
là một chương trình thực thi các gói trong Danh mục SSIS. Trong trường hợp này, nó được khởi chạy dưới cùng một người dùng thực thi gói SSIS từ SQL Server Management Studio.
Công việc tác nhân máy chủ SQL không có proxy:
Khi bạn chạy gói SSIS từ bên trong Công việc tác nhân máy chủ SQL , bước công việc theo mặc định sẽ chạy trong SQL Server Agent Service Account
. Có thể tìm thấy tài khoản người dùng được liên kết với Dịch vụ tác nhân SQL Server bằng cách điều hướng đến Windows Start \ Administrative Tools \ Services
, tìm kiếm dịch vụ SQL Server Agent (Your Instance Name
) và tìm tài khoản người dùng được liệt kê trong Log On As
Công việc tác nhân máy chủ SQL với proxy:
Bạn cũng có thể chạy Công việc đại lý máy chủ SQL dưới các thông tin xác thực khác nhau bằng cách tạo tài khoản proxy. Khi các bước công việc được thực hiện trong tài khoản proxy, gói trong bước công việc sẽ thực thi theo thông tin xác thực được chỉ định trên tài khoản proxy.
Dưới đây câu trả lời SO cung cấp hướng dẫn từng bước để tạo tài khoản proxy để chạy Công việc tác nhân máy chủ SQL.
Làm cách nào để tạo một bước trong SQL Server Agent Job sẽ chạy gói SSIS của tôi?
Cách xác minh:
Gói SSIS 2012 mẫu:
Đây là những gì tôi đã làm để xác minh các tuyên bố ở trên liên quan đến tài khoản người dùng được sử dụng để thực thi gói.
-
Mở Công cụ dữ liệu SQL Server và tạo và gói SSIS 2012 có tên
SO_15289442.dtsx
. -
Tạo một biến có tên
ExecutionUser
của kiểu dữ liệuString
. Gán biểu thức@[System::UserName]
vào biến.UserName
là một biến hệ thống cung cấp thông tin của người dùng đang thực thi gói. -
Kéo và thả Gửi tác vụ thư vào Luồng dữ liệu tab.
-
Tạo kết nối SMTP và gán kết nối đó cho
SmtpConnection
trên trang Send Mail Task Editor - Mail. -
Chỉ định
From
vàTo
địa chỉ email. -
Thay đổi MessageSourceType thành
Variable
. -
Đặt
MessageSource
tớiUser::ExecutionUser
. -
Nhấp chuột phải vào gói và chọn Triển khai để triển khai dự án tới Danh mục dịch vụ tích hợp có sẵn trên máy chủ bạn chọn.
Thực thi gói
-
Chạy gói trong SSDT.
-
Mở SSDT bằng tùy chọn Chạy với tư cách người dùng khác nhau. Cung cấp thông tin đăng nhập khác với thông tin đăng nhập của bạn và chạy lại gói.
-
Chạy gói từ Danh mục dịch vụ tích hợp.
-
Tạo Công việc tác nhân SQL Server để chạy gói bằng Tài khoản dịch vụ tác nhân SQL Server.
-
Tạo Công việc tác nhân máy chủ SQL để chạy gói bằng tài khoản proxy.
Đối với mỗi lần thực thi được đề cập ở trên, bạn sẽ nhận được một email có tài khoản người dùng đã được sử dụng để thực thi gói.
Vấn đề của bạn:
Trong trường hợp của bạn, gói sẽ thực thi trong tài khoản của bạn ( giả sử rằng bạn đang sử dụng thông tin đăng nhập của mình để truy cập SSISDB ) nếu bạn nhấp chuột phải và chọn Thực thi từ Danh mục Dịch vụ Tích hợp. Đảm bảo rằng tài khoản có quyền truy cập vào đường dẫn mạng.
Nếu bạn đang chạy gói của mình từ bên trong SQL Server Agent Job, thì tài khoản proxy là run as another user
tùy chọn mà bạn đang xem.