Το αρχείο INF: Τρόπος εκτέλεση ενός πακέτου DTS ως μια προγραμματισμένη εργασία

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

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

Περίληψη

Ένα πρόβλημα που ενδέχεται να συναντήσετε συχνά με ένα πακέτο υπηρεσιών μετασχηματισμού δεδομένων (DTS), είναι ότι το πακέτο DTS εκτελείται απαλλαγμένα σφαλμάτων από τον SQL Server Enterprise Manager, αλλά το πακέτο DTS αποτυγχάνει όταν έχει προγραμματιστεί να εκτελεστεί ως εργασία. Συνήθως, αυτό συμβαίνει εξαιτίας μιας διαφοράς στο περιβάλλον ασφαλείας κατά την εκτέλεση του πακέτου ως εργασία έναντι όταν το πακέτο να εκτελείται αλληλεπιδραστικά.

Αυτό το άρθρο περιγράφει τα ζητήματα ασφαλείας που περιλαμβάνονται στην εκτέλεση πακέτα DTS.

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

Κάποιοι όροι που χρησιμοποιούνται σε αυτό το άρθρο περιλαμβάνουν:
Σύμπτυξη αυτού του πίνακαΑνάπτυξη αυτού του πίνακα
ΌροιΠεριγραφή
DTSΥπηρεσίες Μετασχηματισμού Δεδομένων
Έλεγχος ταυτότητας SQLΈνα σύστημα ασφαλείας που βασίζεται σε Microsoft SQL Server συνδέσεων και κωδικών πρόσβασης.
Τυπική ασφάλειαΑνατρέξτε στην ενότητα έλεγχος ταυτότητας SQL.
Έλεγχος ταυτότητας του SQL ServerΑνατρέξτε στην ενότητα έλεγχος ταυτότητας SQL.
Έλεγχος ταυτότητας των Microsoft Windows NTΌταν ένας χρήστης συνδέεται μέσω ενός λογαριασμού χρήστη των Microsoft Windows, το SQL Server επαληθεύει ότι το όνομα λογαριασμού και κωδικό πρόσβασης επικυρώθηκαν όταν ο χρήστης συνδεθεί σε έναν υπολογιστή που εκτελεί τα Microsoft Windows NT, Microsoft Windows 2000, τα Microsoft Windows 95 ή Microsoft Windows 98.
Ενσωματωμένη ασφάλειαΑνατρέξτε στην ενότητα έλεγχος ταυτότητας των Microsoft Windows NT.
Έλεγχος ταυτότητας των Windows NT ή τα Microsoft Windows 2000Ανατρέξτε στην ενότητα έλεγχος ταυτότητας των Microsoft Windows NT.
Λογαριασμός των Microsoft Windows NT ή σύνδεσης ισούται με δικαίωμα σύνδεσης Windows ή λογαριασμόςΊδιο με το λογαριασμό σύνδεσης των Microsoft Windows NT ή τα Windows 2000 λογαριασμό σύνδεσης.
Ο παράγοντας SQLΥπηρεσία παράγοντα διακομιστή SQL
SEMSQL Server Enterprise Manager

Πού είναι η εκτέλεση του πακέτου DTS;

Ένα πρόβλημα που αναφέρεται συχνά σχετικά με τα πακέτα DTS είναι η διαφορά στη συμπεριφορά όταν ένα πακέτο εκτελείται από τον SQL Enterprise Manager ή όταν το πακέτο DTS έχει προγραμματιστεί ως εργασία. Κατά την εκτέλεση του πακέτου από τη σχεδίαση DTS ρύθμιση παραμέτρων σε SQL Enterprise Manager (SEM), το πακέτο εκτελείται στον υπολογιστή όπου είναι τοποθετημένες. Εάν είστε στο διακομιστή (φυσικά, ή μέσω λογισμικού απομακρυσμένης πρόσβασης), το πακέτο εκτελείται στο διακομιστή. Εάν είναι τοποθετημένες σε ένα σταθμό εργασίας και έχουν καταχωρηθεί στο διακομιστή SQL Server Enterprise Manager, τότε το πακέτο εκτελείται στο σταθμό εργασίας. Το περιβάλλον ασφαλείας του πακέτου είναι ότι του λογαριασμού των Windows NT που χρησιμοποιήσατε για να συνδεθείτε αυτόν τον υπολογιστή. Όταν εκτελείται το πακέτο ως μια προγραμματισμένη εργασία, το πακέτο εκτελείται πάντα στο διακομιστή.

Συχνά, ένας προγραμματιστής δημιουργεί και ελέγχει το πακέτο DTS αλληλεπιδραστικά σε σταθμό εργασίας τους, μέσω της σχεδίασης DTS Enterprise Manager. Αφού το πακέτο DTS είναι διορθώνεται, το πακέτο έχει προγραμματιστεί στη συνέχεια ως εργασία. Αυτή η ενέργεια αλλάζει τη θέση του πακέτου από τον προγραμματιστή του σταθμού εργασίας στο διακομιστή. Εάν το πακέτο έγινε φόρτωση δεδομένων κειμένου σε SQL Server, το πακέτο θα αποτύχει, εκτός και αν το αρχείο κειμένου και τη διαδρομή προς το αρχείο υπάρχει στο διακομιστή. Εάν το πακέτο συνδεόταν με έναν άλλο διακομιστή, το πακέτο αποτυγχάνει εάν το περιβάλλον ασφαλείας του έργου που δεν υποστηρίζει τη σύνδεση.

Ποιος είναι ο κάτοχος της εργασίας που εκτελείται το πακέτο DTS;

Τα πακέτα έχουν προγραμματιστεί, δημιουργώντας μια εργασία που γίνεται από την υπηρεσία του παράγοντα του SQL. Αυτή η εργασία, όπως κάθε άλλη προγραμματισμένη εργασία, έχει έναν κάτοχο. Ο κάτοχος μπορεί να είναι μια σύνδεση SQL Server ή ένα λογαριασμό των Windows NT.

Για να καθορίσετε τον κάτοχο:
  • Κάντε διπλό κλικ στο της στη Διαχείριση εταιρικών έργων και έπειτα κοιτάξτε στοΚάτοχοςΣύνθετο αναπτυσσόμενο πλαίσιο.

    -ή-

  • Εκτέλεση τηςmsdb.dbo.sp_help_jobσύστημα αποθηκευμένης διαδικασίας.
SQL Server 7.0

Το περιβάλλον ασφαλείας στο οποίο εκτελείται η εργασία εξαρτάται από τον κάτοχο της εργασίας. Εάν η εργασία ανήκει σε μια σύνδεση που δεν είναι μέλος τουSysadminρόλος διακομιστή, τότε το πακέτο εκτελείται στο περιβάλλον του τοSQLAgentCmdExecλογαριασμός και διαθέτει τα δικαιώματα αυτού του λογαριασμού.

ΓιαSQLAgentCmdExecto be able to run jobs that connect to SQL Server, theSQLAgentCmdExecaccount must have proper Windows/NT permissions and be granted login access to SQL Server with appropriate database permissions. Για ναSQLAgentCmdExecaccount generally has no rights outside of the local SQL Server computer. Therefore, any package that requires a connection to another computer fails, if it is scheduled as a job owned by a login that is not a member of the Sysadmin role.

Του SQL Server 2000

The security context in which the job is run is determined by the owner of the job. If the job is owned by a login that is not a member of the Sysadmin server role, then the package is run under the context of the account setup as the SQL Agent Proxy Account, and has the rights and permissions of that account.

For SQL Agent Proxy to be able to run jobs that connect to SQL Server, the SQL Agent Proxy account must have proper Windows/NT permissions and be granted login access to SQL Server with appropriate database permissions. For the jobs that execute a DTS package, the SQL Agent Proxy Account must have read and write permissions to the temp directory of the Account the SQL Server Agent is running under. Για παράδειγμα
c:\Documents and Settings\<account>\Local Settings\Temp </account>
If the job is owned by an account (either a SQL Server login or a Windows NT authenticated login) that is a member of theSysadminrole, the SQL Agent job runs under the context of the account used to start the SQL Agent service.

Also, if the job is owned by a Windows NT domain account and if the package is stored in the SQL Server or SQL Server repository (not as a file), you must start the SQL Server service by using an account from the same domain or an account from a trusted domain. For example, if the SQL Agent job is owned by an account from the USA domain, then the account used to start the SQL Server service must be either from the USA domain or a domain trusted by the USA domain. If the SQL Server is started using a local account, the package fails to run.

What Determines the Owner?

Question: When you right-click the DTS package and you choose to schedule the package, how is the owner assigned?

Answer: The owner of the SQL Agent job depends on how the SQL Server is registered in the Enterprise Manager. If the SQL Server is registered using a Windows NT authentication, the owner of the scheduled job is the account used to start the SQL Agent service. If the SQL Server is registered in SEM using SQL Server authentication (for example, theSAlogin), the owner of the job is that same SQL Server login.

To change the ownership of the package:
  1. Double-click the job in Enterprise Manager.
  2. Κάντε κλικ στην καρτέλαΓενικάκαρτέλα και στη συνέχεια κάντε κλικ στοOwnerdrop-down combo box.
Μπορείτε επίσης να χρησιμοποιήσετε τοmsdb.dbo.sp_update_jobsystem stored procedure to change the ownership of the package.

How is the DTS Package Launched?

If you manually run a package by using theDTSRun.execommand line utility, the security context is that of the Windows account you used to log in to the computer. If you run the package by usingDTSrun.exethrough thexp_cmdshellextended stored procedure, the package is run in the context of the account used to start the SQL Server service, provided that the user that executedxp_cmdshellis a member of theSysadminΡόλος. If the user that executedxp_cmdshellis not an account in theSysadminrole, thenDTSRun.exeruns in the context of theSQLAgentCmdExecΛογαριασμός.

If the SQL Server was started using theLocal Systemaccount, the DTS package has no permissions outside of the computer that is running SQL Server.

If the SQL Server service is started under a Windows NT account, the package has the same rights and permissions as that Windows NT account. If that Windows NT account is a local machine account (as opposed to a domain account), the package does not have any rights outside of that computer. If the Windows NT account is a domain account, the package may be able to access resources on many different computers on that domain.

How are Windows NT-authenticated Connections Made?

Sometimes a DTS package contains an object that makes a connection to a data source using Windows NT authentication. The security context used for this connection is the same as the context of the package that is running. If the package is run from a command prompt by usingDTSRun.exe, the credentials of the currently logged-in Windows NT account is used. If the package is run as a SQL Server Agent job, then the integrated security connection is made using the account you used to start SQL Agent (assuming that the owner of the package is a member of theSysadminrole).

Common Problems

Here are a few other common problems you might encounter when you run DTS packages as scheduled jobs in SQL Agent:

Mapped Drives

Εάν το πακέτο βασίζεται σε φυσική θέση ενός αρχείου που έχει οριστεί από ένα γράμμα της αντιστοιχισμένης μονάδας δίσκου, το πακέτο ενδέχεται να αποτύχει όταν εκτελείται ως μια προγραμματισμένη εργασία ο παράγοντας SQL, ανεξάρτητα από το ποιος είναι ο κάτοχος του πακέτου. Ο παράγοντας SQL είναι μια υπηρεσία των Windows NT και υπηρεσίες των Windows NT δεν μπορούν να δουν τα γράμματα αντιστοιχισμένη μονάδα δίσκου. Η αντιστοίχιση είναι μέρος του προφίλ του χρήστη που φορτώνεται όταν ένας χρήστης συνδέεται σε μια περίοδο λειτουργίας των Windows NT. Υπηρεσίες δεν λειτουργούν με τα προφίλ χρήστη. Χρησιμοποιήστε μια διαδρομή UNC αντί για ένα γράμμα της αντιστοιχισμένης μονάδας δίσκου.Για πρόσθετες πληροφορίες σχετικά με το λόγο μια αντιστοιχισμένη μονάδα δίσκου δεν είναι δυνατό να χρησιμοποιεί μια υπηρεσία, κάντε κλικ στον αριθμό του άρθρου παρακάτω για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:
180362ΠΛΗΡΟΦΟΡΙΕΣ: Υπηρεσίες και μονάδες ανακατεύθυνσης

Σχετική διαδρομή

Μια σχετική διαδρομή (ή το γράμμα της μονάδας δίσκου) είναι συγκεκριμένες για την τρέχουσα θέση του πακέτου (όπως η C:\). Εάν ένα πακέτο έχει σχεδιαστεί σε ένα σταθμό εργασίας και έχει προγραμματιστεί μετά τη θέση από την οποία το πακέτο εκτελείται αλλαγές. Οι διαδρομές γράμμα μονάδας δίσκου αναφέρεται τώρα σε διαφορετική φυσική θέση του στο διακομιστή. Εκτός και αν τα αναφερόμενα αρχεία μετακινούνται επίσης στο διακομιστή, θα αποτύχει η εκτέλεση του πακέτου.

Τα στοιχεία COM σε δέσμες ενεργειών ActiveX

Εάν σε μια δέσμη ενεργειών ActiveX, ονομάζονται στοιχεία COM (για παράδειγμα, κλήσεις σε αντικείμενα Microsoft ActiveX Data Objects (ADO), απομακρυσμένη Data Objects (RDO) ή το αντικείμενο υποστήριξης αποφάσεων (DSO)), τα στοιχεία που πρέπει να υπάρχει στον υπολογιστή από τον οποίο εκτελείται το πακέτο DTS. Εάν εκτελείτε το πακέτο από τη σχεδίαση DTS στη ρύθμιση παραμέτρων SEM ήDTSRun.exe, τα στοιχεία που πρέπει να υπάρχει στον υπολογιστή με τον οποίο είναι τοποθετημένες. Εάν το πακέτο έχει προγραμματιστεί η εκτέλεση, ο παράγοντας SQL, τα στοιχεία που πρέπει να φορτωθεί στον υπολογιστή που φιλοξενεί τον SQL Server.

Το πακέτο ασφαλείας

Τα πακέτα DTS μπορεί να έχει κάτοχο κωδικών πρόσβασης και κωδικούς πρόσβασης χρηστών. Αυτοί οι κωδικοί πρόσβασης επηρεάζει ποιος μπορεί να επεξεργαστείτε και να εκτελέσετε τα πακέτα. Καμία από αυτές επηρεάζουν το περιβάλλον ασφαλείας στο οποίο εκτελείται το πακέτο.

Δικαιώματα SQLAgentCmdExec

Εάν η εργασία εκτελείται στο περιβάλλον του τοSQLAgentCmdExecλογαριασμού, και τοSQLAgentCmdExecλογαριασμός δεν έχει δικαιώματα σύνδεσης με τον SQL Server, ενδέχεται να αποτύχει η εργασία με το ακόλουθο μήνυμα λάθους:
DTSRun: φόρτωση... DTSRun: εκτέλεση... Με το DTSRun DTSStep_DTSExecuteSQLTask_1 DTSRun OnStart: Σφάλμα: DTSStep_DTSExecuteSQLTask_1, σφάλμα = συμβολοσειρά σφάλματος (80040E4D)-2147217843: Απέτυχε η σύνδεση για το χρήστη 'NT_name\SQLAgentCmdExec'. Προέλευση σφάλματος: υπηρεσία παροχής Microsoft OLE DB για το αρχείο Βοήθειας του SQL Server: περιβάλλον Βοήθειας: 0 εγγραφές λεπτομερειών σφάλματος: σφάλμα:-2147217843 (80040E4D) σφάλμα υπηρεσίας παροχής: 18456 συμβολοσειρά σφάλματος (4818): σύνδεση απέτυχε για το χρήστη 'NT_name\SQLAgentCmdExec'. Προέλευση σφάλματος: υπηρεσία παροχής Microsoft OLE DB για το αρχείο Βοήθειας του SQL Server: περιβάλλον Βοήθειας: 0 OnFinish DTSRun: DTSRun DTSStep_DTSExecuteSQLTask_1: πακέτου εκτέλεση ολοκληρώθηκε. Εξόδου της διεργασίας κωδικός 1. Το βήμα απέτυχε.
Πρέπει να εκχωρήσετε τοSQLAgentCmdExecλογαριασμός σωστή σύνδεση και τη βάση δεδομένων δικαιώματα στο διακομιστή SQL Server.

Ιδιότητες

Αναγν. άρθρου: 269074 - Τελευταία αναθεώρηση: Κυριακή, 19 Δεκεμβρίου 2010 - Αναθεώρηση: 2.0
Οι πληροφορίες σε αυτό το άρθρο ισχύουν για:
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2000 Standard Edition
Λέξεις-κλειδιά: 
kbproductlink kbinfo kbmt KB269074 KbMtel
Μηχανικά μεταφρασμένο
ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης.
Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη:269074

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

 

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