INF: Esecuzione di un pacchetto DTS come processo pianificato

Traduzione articoli Traduzione articoli
Identificativo articolo: 269074 - Visualizza i prodotti a cui si riferisce l?articolo.
Questo articolo č stato precedentemente pubblicato con il codice di riferimento I269074
Espandi tutto | Chiudi tutto

In questa pagina

Sommario

Non č infrequente che i pacchetti DTS (Data Transformation Services) vengano solitamente eseguiti correttamente da SQL Server Enterprise Manager, ma non come processi pianificati. Ciō dipende in genere dal contesto di protezione in cui viene eseguito il pacchetto, ovvero come processo o in modo interattivo.

In questo articolo sono illustrati i problemi di protezione correlati all'esecuzione di pacchetti DTS.

Informazioni

Di seguito sono elencati alcuni termini utilizzati nell'articolo:
Riduci questa tabellaEspandi questa tabella
DTS Acronimo di Data Transformation Services.
Autenticazione di SQL Sistema di protezione basato su accessi e password di Microsoft SQL Server.
Protezione standard Vedere Autenticazione di SQL.
Autenticazione di SQL Server Vedere Autenticazione di SQL.
Autenticazione di Microsoft Windows NT Quando un utente si connette utilizzando un account utente di Microsoft Windows, SQL Server verifica che il nome dell'account e la password siano state convalidate al momento dell'accesso al computer che esegue Microsoft Windows NT, Microsoft Windows 2000, Microsoft Windows 95 o Microsoft Windows 98.
Protezione integrata Vedere Autenticazione di Microsoft Windows NT.
Autenticazione di Windows NT o Microsoft Windows 2000 Vedere Autenticazione di Microsoft Windows NT.
Account o accesso di Microsoft Windows NT corrispondente all'accesso o all'account di Windows Corrisponde all'account di accesso di Microsoft Windows NT o di Microsoft Windows 2000.
Agente SQL Servizio Agente SQL Server
SEM SQL Server Enterprise Manager

Dove vengono eseguiti i pacchetti DTS?

Uno dei problemi pių frequenti relativi ai pacchetti DTS č rappresentato dal diverso comportamento quando un pacchetto viene eseguito da SQL Enterprise Manager e quando invece viene pianificato come processo. Se avviato da Progettazione DTS in SQL Enterprise Manager (SEM), il pacchetto viene eseguito dal computer in uso. Se l'operazione viene effettuata dal server, sia fisicamente che tramite software di accesso remoto, il pacchetto viene eseguito sul server. Se invece viene effettuata da una workstation e il server SQL Server č stato registrato in Enterprise Manager, il pacchetto viene eseguito sulla workstation. Il contesto di protezione del pacchetto corrisponde a quello dell'account di Windows NT utilizzato per accedere al computer. Quando il pacchetto viene eseguito come processo pianificato, il pacchetto viene sempre eseguito sul server.

Spesso gli sviluppatori creano e testano il pacchetto DTS in modo interattivo sulla propria workstation tramite Progettazione DTS di Enterprise Manager. Una volta completato il debug, il pacchetto DTS viene pianificato come processo. Ciō implica lo spostamento del pacchetto dalla workstation dello sviluppatore al server. Se era in corso il caricamento di dati di testo in SQL Server, l'esecuzione del pacchetto non verrā completata a meno che il file di testo e il relativo percorso non siano disponibili sul server. Se era in corso la connessione a un altro server, l'esecuzione del pacchetto non verrā completata a meno che il contesto di protezione del processo non supporti tale connessione.

A chi appartiene il pacchetto DTS?

I pacchetti vengono pianificati creando un processo gestito dal servizio Agente SQL. Questo processo, cosė come qualsiasi altro processo pianificato, č associato a un proprietario, che puō essere un accesso SQL Server o un account Windows NT.

Per determinare il proprietario:
  • Fare doppio clic sul processo in Enterprise Manager, quindi esaminare la casella combinata a discesa relativa al proprietario.

    Oppure

  • Eseguire la stored procedure di sistema msdb.dbo.sp_help_job.
Il contesto di protezione in cui viene eseguito il processo č determinato dal proprietario del processo. Se il processo appartiene a un accesso non incluso nel ruolo server con privilegi di amministratore di sistema, il pacchetto verrā eseguito nel contesto dell'account SQLAgentCmdExec e disporrā dei diritti e delle autorizzazioni di tale account. All'account SQLAgentCmdExec non sono in genere assegnati altri diritti all'esterno del computer locale SQL Server. L'esecuzione di qualsiasi pacchetto che richiede una connessione a un altro computer non verrā pertanto completata se pianificata come processo di proprietā di un accesso non incluso nel ruolo con privilegi amministrativi.

Se il processo appartiene a un account, ad esempio un accesso SQL Server o un accesso autenticato Windows NT, incluso nel ruolo con privilegi amministrativi, il processo dell'Agente SQL verrā eseguito nel contesto dell'account utilizzato per l'avvio del servizio Agente SQL.

Se inoltre il processo appartiene a un account di dominio Windows NT e il pacchetto č memorizzato nel server o nel repository di SQL Server non come file, č necessario avviare il servizio SQL Server utilizzando un account dello stesso dominio o un account di un dominio di tipo trusted. Se ad esempio il processo dell'Agente SQL appartiene a un account del dominio USA, l'account utilizzato per avviare il servizio SQL Server deve essere incluso nel dominio USA o in un dominio trusted dal dominio USA. Se il servizio SQL Server viene avviato con un account locale, l'esecuzione del pacchetto non verrā completata.

Quali fattori determinano il proprietario?

Domanda: quando si fa clic con il pulsante destro del mouse sul pacchetto DTS e si sceglie di pianificare l'esecuzione del pacchetto, in che modo viene assegnato il proprietario? Risposta: il proprietario del processo dell'Agente SQL dipende dalla registrazione del server SQL Server in Enterprise Manager. Se il server SQL Server viene registrato con autenticazione Windows NT, il proprietario del processo pianificato corrisponde all'account utilizzato per l'avvio del servizio Agente SQL. Se il server SQL Server č registrato in SEM con l'autenticazione SQL Server, ad esempio con l'accesso SA, il proprietario del processo coincide con l'accesso SQL Server.

Per cambiare il proprietario del pacchetto:
  1. Fare doppio clic sul processo in Enterprise Manager.
  2. Scegliere la scheda Generale, quindi fare clic sulla casella combinata a discesa relativa al proprietario.
Č anche possibile utilizzare la stored procedure di sistema msdb.dbo.sp_update_job.

In che modo vengono avviati i pacchetti DTS?

Se si esegue manualmente un pacchetto tramite l'utilitā della riga di comando DTSRun.exe, il contesto di protezione č quello dell'account Windows utilizzato per l'accesso al computer. Se si esegue il pacchetto con DTSrun.exe tramite la stored procedure avanzata xp_cmdshell, il contesto sarā quello dell'account utilizzato per avviare il servizio SQL Server, purché l'utente che ha eseguito xp_cmdshell sia incluso nel ruolo con privilegi amministrativi. Se l'utente che ha eseguito xp_cmdshell non č un account del ruolo con privilegi amministrativi, DTSRun.exe verrā eseguito nel contesto dell'account SQLAgentCmdExec.

Se il servizio SQL Server č stato avviato con l'account di sistema locale, per il pacchetto DTS non sono disponibili autorizzazioni all'esterno del computer in cui viene eseguito SQL Server.

Se il servizio SQL Server viene avviato con un account Windows NT, il pacchetto disporrā degli stessi diritti e delle stesse autorizzazioni dell'account Windows NT. Se l'account Windows NT coincide con quello locale e quindi non un account di dominio, per il pacchetto non saranno disponibili diritti all'esterno del computer in uso. Se invece l'account Windows NT č un account di dominio, il pacchetto puō accedere alle risorse su pių computer appartenenti a tale dominio.

In che modo vengono effettuate le connessioni con autenticazione Windows NT?

Un pacchetto DTS contiene talvolta un oggetto per effettuare una connessione a un'origine dati tramite l'autenticazione Windows NT. Il contesto di protezione utilizzato per questa connessione coincide con quello del pacchetto in esecuzione. Se il pacchetto viene eseguito da un prompt dei comandi con DTSRun.exe, verranno applicate le credenziali dell'account Windows NT utilizzato per l'accesso. Se il pacchetto viene eseguito come processo dell'Agente SQL Server, verrā stabilita una connessione di protezione integrata con l'account utilizzato per l'avvio dell'Agente SQL, presupponendo che il proprietario del pacchetto sia incluso nel ruolo con privilegi amministrativi.

Problemi comuni

Di seguito sono riportati altri problemi comuni riscontrabili quando si eseguono pacchetti DTS come processi pianificati nell'Agente SQL.

Unitā connesse

Se il pacchetto č basato sulla posizione fisica di un file contrassegnato da una lettera dell'unitā connessa, č possibile che l'esecuzione del pacchetto non venga completata se eseguito come processo pianificato dell'Agente SQL, indipendentemente dal proprietario. Agente SQL č un servizio di Windows NT e i servizi di Windows NT non riconoscono le lettere di unitā connesse. Il mapping delle unitā č incluso nel profilo utente caricato quando un utente accede a una sessione di Windows NT. I servizi non gestiscono i profili utente. Utilizzare pertanto un percorso UNC invece di una lettera di unitā connessa.

Percorso relativo

Un percorso relativo (o lettera di unitā) č specifico della posizione corrente del pacchetto, ad esempio C:\. Se un pacchetto viene definito su una workstation e successivamente pianificato, la posizione di esecuzione del pacchetto cambia. I percorsi delle lettere di unitā fanno ora riferimento a una diversa posizione fisica, ovvero quella del server. L'esecuzione del pacchetto non viene completata a meno che non vengano spostati sul server anche i file referenziati dal pacchetto.

Componenti COM in script ActiveX

Se in uno script ActiveX vengono effettuate chiamate a componenti COM, ad esempio a oggetti Microsoft ActiveX Data Objects (ADO), Remote Data Objects (RDO) o Decision Support Object (DSO), i componenti chiamati devono essere disponibili nel computer da cui viene eseguito il pacchetto DTS. Se si esegue il pacchetto da Progettazione DTS in SEM o da DTSRun.exe, i componenti devono essere disponibili nel computer in uso. Se si pianifica l'esecuzione del pacchetto dall'Agente SQL, i componenti chiamati devono essere caricati sul computer che ospita il server SQL Server.

Protezione dei pacchetti

I pacchetti DTS dispongono di password proprietario e di password utente. Tali password consentono di limitare gli utenti autorizzati alla modifica e all'esecuzione dei pacchetti. Nessuna delle due password influisce tuttavia sul contesto di protezione in cui viene eseguito il pacchetto.

Proprietā

Identificativo articolo: 269074 - Ultima modifica: sabato 14 maggio 2011 - Revisione: 4.0
Le informazioni in questo articolo si applicano a:
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2000 Standard Edition
Chiavi: 
kbinfo KB269074
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

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