2017-02-24 19 views
13

Tôi đang làm việc trên một ứng dụng DWH. Máy chủ tôi được cấp quyền truy cập chỉ có SSIS được cài đặt mà không có công cụ cơ sở dữ liệu. Tôi gặp lỗi như:Cơ sở dữ liệu msdb ở đâu cho các máy chủ SSIS độc lập

Quyền EXECUTE bị từ chối trên đối tượng 'sp_ssis_listfolders', cơ sở dữ liệu 'msdb', lược đồ 'dbo'.

Tôi cần xác minh quyền trên cơ sở dữ liệu và trên msdb. Có cách nào để tìm máy chủ nào được cấu hình để lưu trữ cơ sở dữ liệu msdb?

+0

Loại ứng dụng là gì? nơi gói được lưu trữ? – Hadi

+0

Tha gói theo mặc định được lưu trữ trong MSDB mà tôi không thể xác định vị trí. Ý bạn là gì theo loại ứng dụng? –

+0

Từ nơi gói của bạn được gọi, tệp '.exe' hoặc bất kỳ thứ gì khác? – Hadi

Trả lời

7

Tìm thấy nó!

Nó bị ẩn trong tệp cấu hình trong thư mục cài đặt của SSIS.Duyệt tới C:\Program Files\Microsoft SQL Server\120\DTS\Binn rồi tìm tệp có tên MsDtsSrvr.ini.xml. Tên máy chủ chỉ đang ngồi ở đó và có thể thay đổi theo ý bạn.

MsDtsSrvr.ini.xml

+1

Điều này hữu ích. Xin chúc mừng!! – Hadi

3

Sau khi đọc bình luận của bạn, Bạn cần phải đi đến các cửa sổ lên kế hoạch nhiệm vụ và đọc lệnh chạy Dtexec utility

Lệnh sẽ trông giống như sau:

C:\..\dtexec /SQL "\Package1" /SERVER "Test\Test" /USER "blabla" /PASSWORD "blabla" 

Chuỗi sau /SERVER từ khóa là tên máy chủ nơi các gói nằm ở

nếu gói không nằm trong máy chủ SQL và được thực thi từ tệp gói, lệnh sẽ giống như sau:

C:\..\dtexec /F "C:\Packages\Package1.dtsx" 

Sau đó, chuyển đến gói mở và đọc chuỗi kết nối từ đó.

Đọc thêm về tiện ích DtExec trong những bài viết này:

Thông tin về các ngoại lệ Thrown

Trong SQL server, Tài khoản người dùng kết hợp với kết nối trong số Execute Package cần phải b e đã cấp vai trò db_ssisoperator trong cơ sở dữ liệu msdb, nếu không, nó không thể tìm thấy gói khác đang được gọi.

Và nó có thể cũng cần thêm mình vào các vai trò sau:

  • db_ddladmin
  • db_ssisadmin

Bạn có thể tìm gợi ý khác trong những liên kết này:

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