Ένα πακέτο SSIS δεν εκτελείται κατά την κλήση του πακέτου SSIS από ένα βήμα εργασία του παράγοντα διακομιστή SQL

Μεταφράσεις άρθρων Μεταφράσεις άρθρων
Αναγν. άρθρου: 918760 - Δείτε τα προϊόντα στα οποία αναφέρεται το συγκεκριμένο άρθρο.
Ανάπτυξη όλων | Σύμπτυξη όλων

Σε αυτήν τη σελίδα

Συμπτώματα

Όταν καλέσετε ένα πακέτο 2005 Integration Services (SSIS) του Microsoft SQL Server από ένα βήμα εργασία του παράγοντα διακομιστή SQL, το πακέτο SSIS δεν εκτελείται. Ωστόσο, εάν δεν τροποποιήσετε το πακέτο SSIS, θα εκτελεστεί με επιτυχία έξω από τον παράγοντα διακομιστή SQL.

Αιτία

Αυτό το ζήτημα παρουσιάζεται όταν ισχύει μία από τις ακόλουθες συνθήκες:
  • Ο λογαριασμός χρήστη που χρησιμοποιείται για την εκτέλεση του πακέτου δυνάμει παράγοντα διακομιστή SQL διαφέρει από τον αρχικό συντάκτη του πακέτου.
  • Ο λογαριασμός χρήστη δεν διαθέτει τα απαιτούμενα δικαιώματα για τη σύνδεση ή την πρόσβαση σε πόρους εκτός πακέτου SSIS.
Το πακέτο ενδέχεται να εκτελούνται στα ακόλουθα σενάρια:
  • Ο τρέχων χρήστης δεν είναι δυνατό να αποκρυπτογραφήσει μυστικά από το πακέτο. Αυτό το σενάριο μπορεί να προκύψει εάν στον τρέχοντα λογαριασμό ή λογαριασμό εκτέλεσης διαφέρει από τον αρχικό συντάκτη του πακέτου και το πακέτο ProtectionLevel ρύθμιση της ιδιότητας δεν επιτρέπει ο τρέχων χρήστης αποκρυπτογραφήσει μυστικά στο πακέτο.
  • Μια σύνδεση SQL Server που χρησιμοποιεί ενσωματωμένη ασφάλεια αποτυγχάνει επειδή ο τρέχων χρήστης δεν έχει τα απαιτούμενα δικαιώματα.
  • Η πρόσβαση στο αρχείο αποτυγχάνει επειδή ο τρέχων χρήστης δεν έχει τα απαιτούμενα δικαιώματα για την εγγραφή αρχείων που αποκτά πρόσβαση στη Διαχείριση σύνδεσης. Για παράδειγμα, αυτό το σενάριο μπορεί να προκύψει με υπηρεσίες παροχής αρχείων καταγραφής κειμένου που δεν χρησιμοποιείτε μια σύνδεση και κωδικό πρόσβασης. Αυτό το σενάριο μπορεί να προκύψει επίσης με οποιαδήποτε εργασία που εξαρτάται από τη Διαχείριση συνδέσεων αρχείου, όπως μια εργασία SSIS αρχείο συστήματος.
  • Μια ρύθμιση παραμέτρων SSIS πακέτου βασίζονται στο μητρώο χρησιμοποιεί τα κλειδιά μητρώου HKEY_CURRENT_USER. Τα κλειδιά μητρώου HKEY_CURRENT_USER είναι συγκεκριμένο χρήστη.
  • Μια εργασία ή μια Διαχείριση σύνδεσης απαιτεί ότι ο τρέχων λογαριασμός χρήστη έχει σωστά δικαιώματα.

Προτεινόμενη αντιμετώπιση

Για να επιλύσετε αυτό το ζήτημα, χρησιμοποιήστε μία από τις ακόλουθες μεθόδους. Η καταλληλότερη μέθοδος εξαρτάται από το περιβάλλον και το λόγο που το πακέτο απέτυχε.

Μέθοδος 1: Χρήση λογαριασμού μεσολάβησης παράγοντα διακομιστή SQL

Δημιουργήστε ένα λογαριασμό διακομιστή μεσολάβησης του παράγοντα διακομιστή SQL. Αυτός ο λογαριασμός διακομιστή μεσολάβησης πρέπει να χρησιμοποιήσετε μια πιστοποίηση που επιτρέπει την εκτέλεση της εργασίας ως το λογαριασμό που δημιούργησε το πακέτο ή ένα λογαριασμό που διαθέτει τα απαιτούμενα δικαιώματα παράγοντα διακομιστή SQL.

Αυτή η μέθοδος λειτουργεί αποκρυπτογράφησης απόρρητα και πληροί τις βασικές απαιτήσεις από το χρήστη. Ωστόσο, αυτή η μέθοδος μπορεί να έχουν περιορισμένη επιτυχία επειδή τα κλειδιά χρήστη πακέτου SSIS αφορούν τον τρέχοντα χρήστη και τον τρέχοντα υπολογιστή. Επομένως, εάν μετακινήσετε το πακέτο σε άλλον υπολογιστή, αυτή η μέθοδος ενδέχεται να εξακολουθεί να αποτύχει, ακόμα και αν το βήμα εργασία χρησιμοποιεί το λογαριασμό του διακομιστή μεσολάβησης είναι σωστές.

Μέθοδος 2: Ορίστε την ιδιότητα ProtectionLevel πακέτου SSIS ServerStorage

Αλλαγή του πακέτου SSIS ProtectionLevel ιδιότητα ServerStorage. Η ρύθμιση αυτή αποθηκεύει το πακέτο σε μια βάση δεδομένων SQL Server και επιτρέπει τον έλεγχο πρόσβασης σε ρόλους βάσης δεδομένων SQL Server.

Μέθοδος 3: Ορίστε την ιδιότητα ProtectionLevel πακέτου SSIS EncryptSensitiveWithPassword

Αλλαγή του πακέτου SSIS ProtectionLevel ιδιότητα EncryptSensitiveWithPassword. Αυτή η ρύθμιση χρησιμοποιεί έναν κωδικό πρόσβασης για την κρυπτογράφηση. Μπορείτε να τροποποιήσετε τη γραμμή εντολών SQL Server Agent εργασία βήμα για να συμπεριλάβετε αυτόν τον κωδικό πρόσβασης.

Μέθοδος 4: Αρχεία παραμέτρων χρήση SSIS πακέτου

Χρήση αρχείων ρύθμισης παραμέτρων του πακέτου SSIS να αποθηκεύσετε ευαίσθητες πληροφορίες και στη συνέχεια να αποθηκεύσετε αυτά τα αρχεία ρύθμισης παραμέτρων ασφαλούς φακέλου. Μπορείτε να αλλάξετε το ProtectionLevel η ιδιότητα DontSaveSensitive, έτσι ώστε το πακέτο είναι κρυπτογραφημένο και προσπαθήστε να αποθηκεύσετε μυστικά στο πακέτο. Όταν εκτελείτε το πακέτο SSIS, τις απαιτούμενες πληροφορίες φορτώνεται από το αρχείο ρύθμισης παραμέτρων. Βεβαιωθείτε ότι τα αρχεία ρύθμισης παραμέτρων προστατεύονται επαρκώς εάν περιέχουν ευαίσθητες πληροφορίες.

Μέθοδος 5: Δημιουργία προτύπου πακέτου

Για μια μακροπρόθεσμη λύση Δημιουργία προτύπου πακέτου που χρησιμοποιεί ένα επίπεδο προστασίας που διαφέρει από την προεπιλεγμένη ρύθμιση. Αυτό το ζήτημα δεν θα συμβεί στο μέλλον τα πακέτα.

Κατάσταση

Αυτή η συμπεριφορά οφείλεται στη σχεδίαση.

Περισσότερες πληροφορίες

Βήματα για την αναπαραγωγή του προβλήματος

  1. Συνδεθείτε ως χρήστης που δεν είναι μέρος της ομάδας SQLServer2005SQLAgentUser. Για παράδειγμα, μπορείτε να δημιουργήσετε έναν τοπικό χρήστη.
  2. Δημιουργήστε ένα πακέτο SSIS και στη συνέχεια να προσθέσετε μια εργασία ExecuteSQL. Χρησιμοποιήστε μια Διαχείριση σύνδεσης OLEDB στο τοπικό msdb αρχείο χρησιμοποιώντας την ακόλουθη συμβολοσειρά: 'Έλεγχος ταυτότητας των Windows' -SQLSourceType: "Απευθείας εισόδου" -SQLStatement: "sp_who"
  3. Εκτελέστε το πακέτο για να βεβαιωθείτε ότι εκτελείται με επιτυχία.
  4. Σημειώστε ότι το ProtectionLevel η ιδιότητα έχει οριστεί σε EncryptSensitiveWithPassword.
  5. Μπορείτε να δημιουργήσετε μια εργασία του παράγοντα διακομιστή SQL και ένα βήμα εργασία. Με το Εκτέλεση ως λίστα, κάντε κλικ στο κουμπί Η υπηρεσία παράγοντα διακομιστή SQL Για να εκτελέσετε βήμα εργασία.
Το κείμενο στο SQL Server Agent εργασία ιστορικό εμφανίζει πληροφορίες που μοιάζει με το ακόλουθο:

Εκτέλεση ως χρήστη: ΤΟΜΕΑΣ\όνομα_χρήστη. Η εκτέλεση του πακέτου απέτυχε. Απέτυχε το βήμα.

Αποκρυπτογράφηση μυστικά πακέτου

Η προεπιλεγμένη ρύθμιση για το πακέτο SSIS ProtectionLevel η ιδιότητα είναι EncryptSensitiveWithUserKey. Κατά την αποθήκευση του πακέτου, SSIS κρυπτογραφεί μόνο τα τμήματα του πακέτου που περιέχει ιδιότητες που έχουν επισημανθεί ως "ευαίσθητα," όπως κωδικοί πρόσβασης, ονόματα χρηστών και συμβολοσειρές σύνδεσης. Επομένως, όταν φορτώνεται το πακέτο, ο τρέχων χρήστης πρέπει να πληρούν τις απαιτήσεις κρυπτογράφησης για ευαίσθητες ιδιότητες αποκρυπτογράφηση. Ωστόσο, ο τρέχων χρήστης δεν χρειάζεται να πληρούν τις απαιτήσεις κρυπτογράφησης, για να φορτώσετε το πακέτο. Κατά την εκτέλεση του πακέτου μέσω ενός βήματος εργασία του παράγοντα διακομιστή SQL, ο προεπιλεγμένος λογαριασμός είναι ο λογαριασμός υπηρεσίας παράγοντα διακομιστή SQL. Το προεπιλεγμένο λογαριασμό πιθανότατα είναι διαφορετικός χρήστης από τον συντάκτη του πακέτου. Επομένως, το SQL Server Agent βήμα εργασία να φορτώσετε και ξεκινούν να εκτελούνται βήμα εργασία αλλά το πακέτο αποτυγχάνει, επειδή δεν είναι δυνατή η ολοκλήρωση μιας σύνδεσης. Για παράδειγμα, το πακέτο δεν είναι δυνατό να ολοκληρώσει μια σύνδεση OLE DB ή μια σύνδεση FTP. Το πακέτο αποτυγχάνει, επειδή αυτό δεν αποκρυπτογράφηση των πιστοποιήσεων που πρέπει να έχετε σύνδεση.

Σημαντικό Εξετάστε το ενδεχόμενο της αναπτυξιακής διαδικασίας και το περιβάλλον για να καθορίσετε τους λογαριασμούς που είναι απαραίτητες και να χρησιμοποιηθούν σε κάθε υπολογιστή. Η ρύθμιση EncryptSensitiveWithUserKey του ProtectionLevel η ιδιότητα είναι μια ισχυρή ρύθμιση. Αυτή η ρύθμιση δεν θα πρέπει να εκπέσουν επειδή προκαλεί επιπλοκές ανάπτυξης πρώτα. Όταν είστε συνδεδεμένοι στον κατάλληλο λογαριασμό, μπορείτε να κρυπτογραφήσετε τα πακέτα. Μπορείτε επίσης να χρησιμοποιήσετε το βοηθητικό πρόγραμμα γραμμής εντολών Dtutil.exe SSIS για να αλλάξετε τα επίπεδα προστασίας χρησιμοποιώντας ένα αρχείο .cmd και ΧΕΙΡΙΣΜΟΥ παράγοντα διακομιστή SQL. Για παράδειγμα, ακολουθήστε τα εξής βήματα. Επειδή μπορείτε να χρησιμοποιήσετε το βοηθητικό πρόγραμμα Dtutil.exe σε αρχεία δέσμης και βρόχους, μπορείτε να ακολουθήσετε αυτά τα βήματα για πολλά πακέτα ταυτόχρονα.
  1. Για να τροποποιήσετε το πακέτο που θέλετε να κρυπτογραφήσετε χρησιμοποιώντας κωδικό πρόσβασης.
  2. Χρησιμοποιήστε το βοηθητικό πρόγραμμα Dtutil.exe μέσω μιας Λειτουργικό σύστημα (cmd Exec) Βήμα εργασία του παράγοντα διακομιστή SQL για να αλλάξετε το ProtectionLevel ιδιότητα EncryptSensitiveWithUserKey. Η διαδικασία αυτή περιλαμβάνει την αποκρυπτογράφηση του πακέτου, χρησιμοποιώντας τον κωδικό πρόσβασης και εκ νέου κρυπτογράφηση χρησιμοποιώντας το πακέτο. Κλειδί χρήστη που χρησιμοποιείται για την κρυπτογράφηση του πακέτου είναι το βήμα εργασία του παράγοντα διακομιστή SQL στο του Εκτέλεση ως λίστα.

    Σημείωση Επειδή το κλειδί περιέχει το όνομα χρήστη και το όνομα του υπολογιστή, μπορεί να περιοριστεί ως αποτέλεσμα τη μετακίνηση των πακέτων σε άλλον υπολογιστή.

Βεβαιωθείτε ότι έχετε λεπτομερείς πληροφορίες σφάλματος σχετικά με την αποτυχία του πακέτου SSIS

Αντί να βασίζεστε σε περιορισμένες λεπτομέρειες στο ιστορικό SQL Server Agent εργασία, μπορείτε να χρησιμοποιήσετε την καταγραφή για να βεβαιωθείτε ότι έχετε πληροφορίες σφάλματος σχετικά με την αποτυχία του πακέτου SSIS SSIS. Μπορείτε επίσης να εκτελέσετε το πακέτο, χρησιμοποιώντας την εντολή υποσύστημα exec αντί για την εντολή SSIS υποσυστήματος.

Σχετικά με την καταγραφή SSIS

Υπηρεσίες παροχής καταγραφής και καταγραφής SSIS σάς επιτρέπουν να καταγράψετε λεπτομέρειες σχετικά με την εκτέλεση του πακέτου και αποτυχίες. Από προεπιλογή, το πακέτο καταγραφής πληροφοριών. Πρέπει να ρυθμίσετε την καταγραφή πληροφοριών του πακέτου. Όταν ρυθμίζετε το πακέτο για την καταγραφή πληροφοριών, θα δείτε λεπτομερείς πληροφορίες που μοιάζει με το ακόλουθο. Στην περίπτωση αυτή, θα γνωρίζετε ότι πρόκειται για ζήτημα δικαιωμάτων:

OnError, ΌΝΟΜΑ_ΤΟΜΈΑ, όνομα τομέα\όνομα χρήστη, 1:51:59 FTP Task,{C73DE41C-D0A6-450A-BB94-DF6D913797A1},{2F0AF5AF-2FFD-4928-88EE-1B58EB431D74},4/28/2006 μμ, 28/4/2006 1:51:59 μμ,-1073573489, 0 x, δεν είναι δυνατή Η σύνδεση με το διακομιστή FTP χρησιμοποιώντας τη "Διαχείριση σύνδεσης FTP".

OnError, Task,{C6C7286D-57D4-4490-B12D-AC9867AE5762},{F5761A49-F2F9-4575-9E2B-B3D381D6E1F3},4/28/2006 SQL Execute ΌΝΟΜΑ_ΤΟΜΈΑ, όνομα τομέα\όνομα χρήστη, 4:07:00 μμ, 28/4/2006 4:07:00 μμ,-1073573396, 0 x, η λήψη σύνδεσης "user01.msdb" απέτυχε. Σύνδεση μπορεί να μην έχει ρυθμιστεί σωστά ή ίσως δεν έχετε τα κατάλληλα δικαιώματα για αυτήν τη σύνδεση.

Σχετικά με την εντολή του υποσυστήματος exec και πληροφορίες εξόδου

Χρησιμοποιώντας την προσέγγιση exec υποσύστημα εντολή Προσθήκη λεπτομερούς κονσόλας καταγραφή διακόπτες γραμμής εντολών SSIS για την κλήση του εκτελέσιμου αρχείου Dtexec.exe SSIS της γραμμής εντολών. Επιπλέον, μπορείτε να χρησιμοποιήσετε τη δυνατότητα για προχωρημένους εργασία του αρχείου εξόδου. Μπορείτε επίσης να χρησιμοποιήσετε το Συμπερίληψη εξόδου βήμα στο ιστορικό επιλογή για να ανακατευθύνετε τις πληροφορίες καταγραφής σε αρχείο ή το ιστορικό εργασία του παράγοντα διακομιστή SQL.

Ακολουθεί ένα παράδειγμα της γραμμής εντολών:

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


Η καταγραφή/Console επιστρέφει λεπτομέρειες που μοιάζουν με τα εξής:

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:34
End Log

Αναφορές

Για περισσότερες πληροφορίες σχετικά με ένα παρόμοιο πρόβλημα, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:
904800Λαμβάνετε ένα μήνυμα λάθους "Σφάλμα κατά τη φόρτωση" όταν προσπαθείτε να εκτελέσετε ένα πακέτο υπηρεσιών ενοποίησης του SQL Server 2005 στον SQL Server 2005
Για περισσότερες πληροφορίες σχετικά με τον τρόπο χρήσης του βοηθητικού προγράμματος Dtutil.exe σε λειτουργίες δέσμης, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:
906562Τρόπος χρήσης του βοηθητικού προγράμματος dtutil (Dtutil.exe) για να ορίσετε το επίπεδο προστασίας της δέσμης των πακέτων των υπηρεσιών ενοποίησης διακομιστή SQL (SSIS) στον SQL Server 2005
Για περισσότερες πληροφορίες σχετικά με τη δημιουργία πακέτου πρότυπα, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:
908018Τρόπος δημιουργίας ενός προτύπου πακέτο στο SQL Server Business ευφυΐα Development Studio


Για περισσότερες πληροφορίες σχετικά με SSIS πακέτου ασφαλείας και το ProtectionLevel η ιδιότητα, ανατρέξτε στο θέμα "Θέματα για ενοποίηση υπηρεσιών ασφαλείας" SQL Server 2005 Books Online.

Δυστυχώς, οι χρήστες δεν είναι γνωρίζει ότι προεπιλεγμένες ρυθμίσεις βήμα εργασία παράγοντα τοποθετήσετε σε αυτήν την κατάσταση. Για περισσότερες πληροφορίες σχετικά με τον παράγοντα διακομιστή SQL διακομιστές μεσολάβησης και SSIS, ανατρέξτε στα παρακάτω θέματα στο SQL Server 2005 Books Online:
  • Χρονοδιάγραμμα πακέτου εκτέλεσης στο SQL Server Agent
  • Δημιουργία παράγοντα διακομιστή SQL διακομιστές μεσολάβησης

Ιδιότητες

Αναγν. άρθρου: 918760 - Τελευταία αναθεώρηση: Κυριακή, 29 Μαΐου 2011 - Αναθεώρηση: 4.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 KbMtel
Μηχανικά μεταφρασμένο
ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης.
Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη:918760

Αποστολή σχολίων

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com