Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Danh mục dịch vụ tích hợp sử dụng thông tin người dùng nào để thực thi các gói?

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ệu String . 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 To địa chỉ email.

  • Thay đổi MessageSourceType thành Variable .

  • Đặt MessageSource tới User::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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bắt chước và sao chép

  2. Làm cách nào để lấy các bản ghi hiện tại dựa trên Ngày có hiệu lực?

  3. SQL Server 2008 R2 - Xoay vòng động / Xoay vòng với các ngày (di chuyển)

  4. Sử dụng SQL Server 2012 LAG

  5. Truy vấn SQL Server cho nhiều mối quan hệ - làm thế nào để truy vấn?