Αυτήν τη στιγμή είστε εκτός σύνδεσης, σε αναμονή για επανασύνδεση στο Internet

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

ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο έχει μεταφραστεί χρησιμοποιώντας λογισμικό μηχανικής μετάφρασης της Microsoft και μπορείτε να το διορθώσετε χρησιμοποιώντας την τεχνολογία Community Translation Framework (CTF) (Πλαίσιο μετάφρασης κοινότητας). Η Microsoft παρέχει μηχανική μετάφραση, επεξεργασία μετά τη μηχανική μετάφραση από την κοινότητα και άρθρα μεταφρασμένα από επαγγελματίες προκειμένου να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής βάσης σε πολλές γλώσσες. Τα άρθρα μηχανικής μετάφρασης και αυτά που επεξεργάζονται ύστερα από μηχανική μετάφραση ενδέχεται να περιέχουν σφάλματα στο λεξιλόγιο, στη σύνταξη ή/και στη γραμματική. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες μας. Για περισσότερες πληροφορίες σχετικά με το CTF, μεταβείτε στην τοποθεσία http://support.microsoft.com/gp/machine-translation-corrections/el.

Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη: 918760
Συμπτώματα
Όταν μπορείτε να καλέσετε ένα πακέτο διακομιστή SQL Microsoft της υπηρεσίες ενοποίησης 2005 (SSIS) από ένα βήμα εργασία του παράγοντα διακομιστή SQL, το πακέτο SSIS δεν εκτελείται. Ωστόσο, εάν δεν τροποποιήσετε το πακέτο SSIS, αυτό θα εκτελεστεί με επιτυχία έξω από το SQL Server Agent.
Προτεινόμενη αντιμετώπιση
Για να επιλύσετε αυτό το ζήτημα, χρησιμοποιήστε μία από τις ακόλουθες μεθόδους. Η καταλληλότερη μέθοδος εξαρτάται από το περιβάλλον και το λόγο που το πακέτο απέτυχε. Λόγοι που μπορεί να απέτυχε το πακέτο είναι οι εξής:
  • Ο λογαριασμός χρήστη που χρησιμοποιείται για την εκτέλεση του πακέτου στην ενότητα SQL Server Agent διαφέρει από τον αρχικό συντάκτη του πακέτου.
  • Ο λογαριασμός χρήστη δεν διαθέτει τα απαιτούμενα δικαιώματα για τη σύνδεση ή την πρόσβαση σε πόρους που βρίσκονται εκτός του πακέτου SSIS.
Το πακέτο μπορεί να μην εκτελείται στα ακόλουθα σενάρια:
  • Ο τρέχων χρήστης δεν είναι δυνατό να αποκρυπτογραφήσει μυστικά από το πακέτο. Αυτό το σενάριο μπορεί να προκύψει, εάν ο τρέχων λογαριασμός ή ο λογαριασμός εκτέλεσης διαφέρει από τον αρχικό συντάκτη του πακέτου και η ρύθμιση της ιδιότητας ProtectionLevel του πακέτου δεν επιτρέπει ο τρέχων χρήστης αποκρυπτογραφήσει μυστικά στο πακέτο.
  • Μια σύνδεση SQL Server που χρησιμοποιεί ενσωματωμένη ασφάλεια αποτυγχάνει, επειδή ο τρέχων χρήστης δεν έχει τα απαιτούμενα δικαιώματα.
  • Η πρόσβαση στο αρχείο αποτυγχάνει, επειδή ο τρέχων χρήστης δεν έχει τα απαιτούμενα δικαιώματα για εγγραφή στην κοινόχρηστη θέση αρχείων που αποκτά πρόσβαση στη Διαχείριση σύνδεσης. Για παράδειγμα, αυτό το σενάριο μπορεί να προκύψει με υπηρεσίες παροχής αρχείων καταγραφής κειμένου που δεν χρησιμοποιούν μια σύνδεση και έναν κωδικό πρόσβασης. Αυτό το σενάριο μπορεί να προκύψει επίσης με οποιαδήποτε εργασία που εξαρτάται από τη Διαχείριση αρχείων σύνδεσης, όπως μια εργασία συστήματος αρχείων SSIS.
  • Μια ρύθμιση παραμέτρων SSIS πακέτο βάσει μητρώου χρησιμοποιεί τα κλειδιά μητρώου HKEY_CURRENT_USER. Τα κλειδιά μητρώου HKEY_CURRENT_USER είναι ειδικές για το χρήστη.
  • Μια εργασία ή μια διαχείριση σύνδεσης απαιτεί ότι ο τρέχων λογαριασμός χρήστη έχει σωστά δικαιώματα.
Μέθοδος 1: Χρησιμοποιήστε ένα λογαριασμό διακομιστή μεσολάβησης του παράγοντα διακομιστή SQL
Δημιουργήστε ένα λογαριασμό διακομιστή μεσολάβησης του παράγοντα διακομιστή SQL. Αυτός ο λογαριασμός διακομιστή μεσολάβησης πρέπει να χρησιμοποιήσετε μια πιστοποίηση που σας επιτρέπει να τρέξει το λογαριασμό που δημιούργησε το πακέτο ή ως ένα λογαριασμό που διαθέτει τα απαιτούμενα δικαιώματα του SQL Server Agent.

Αυτή η μέθοδος λειτουργεί για την αποκρυπτογράφηση απόρρητα και πληροί τις βασικές απαιτήσεις από το χρήστη. Ωστόσο, αυτή η μέθοδος ενδέχεται να έχουν περιορισμένη επιτυχία γιατί τα κλειδιά χρήστη πακέτο 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. Χρησιμοποιήστε ένα πρόγραμμα διαχείρισης σύνδεσης OLE DB στο τοπικό msdb αρχείο χρησιμοποιώντας την ακόλουθη συμβολοσειρά: 'Έλεγχος ταυτότητας των Windows'-SQLSourceType: "Άμεσα"-SQLStatement: "sp_who"
  3. Εκτελέστε το πακέτο για να βεβαιωθείτε ότι εκτελείται με επιτυχία.
  4. Παρατηρήστε ότι έχει οριστεί η ιδιότηταProtectionLevel για να EncryptSensitiveWithPassword.
  5. Δημιουργήστε μια εργασία του παράγοντα διακομιστή SQL και ένα βήμα εργασία. Στη λίστα Εκτέλεση ως , κάντε κλικ στην επιλογή Υπηρεσία παράγοντα του SQL Server για να εκτελέσετε το βήμα εργασίας.
Το κείμενο στο ιστορικό SQL Server Agent εργασία εμφανίζει πληροφορίες που μοιάζει με το ακόλουθο:

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

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

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

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

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

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

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

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

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

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

OnError, όνομα ΤΟΜΈΑ, όνομα τομέα\όνομα χρήστη, εκτέλεση SQL Task,{C6C7286D-57D4-4490-B12D-AC9867AE5762},{F5761A49-F2F9-4575-9E2B-B3D381D6E1F3},4/28/2006 4:07:00 μ.μ., 4/28/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:34End 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 Intelligence Development Studio


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

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

Προειδοποίηση: Αυτό το άρθρο έχει μεταφραστεί με μηχανική μετάφραση

Ιδιότητες

Αναγνωριστικό άρθρου: 918760 - Τελευταία αναθεώρηση: 03/15/2015 04:29:00 - Αναθεώρηση: 5.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
Σχόλια
ft.com/c.gif?"> " class="col-sm-6 col-xs-24 ng-scope"> 香港特別行政區 - 繁體中文
El Salvador - Español
Panamá - Español
Uruguay - Español
대한민국 - 한국어
España - Español
Paraguay - Español
Venezuela - Español
050&did=1&t="> window.location.protocol) + "//c.microsoft.com/ms.js'><\/script>");