Problema job sql server che richiama dtsx

giovedì 14 maggio 2009 - 10.23

squilibrium Profilo | Junior Member

Ciao a tutti

io ho un package sviluppato con ssis 2008, che al suo interno contiene 6 "execute package task" per richiamare altrettanti dtsx.

Se lancio il dtsx dalla utility di ssis tutto ok, mentre se lo richiamo da un job di sql server, alla fine mi va sempre in errore sebbene in realtà faccia tutto cio che deve fare correttamente.

Il messaggio di errore è:

Message
Executed as user: SIMPNRSVILDB2\SYSTEM. ....0.1600.22 for 64-bit Copyright (C) Microsoft Corp 1984-2005. All rights reserved. Started: 3:29:24 PM Error: 2009-05-13 15:29:26.14 Code: 0xC0016016 Source: Description: Failed to decrypt protected XML node "DTS:Password" with error 0x8009000B "Key not valid for use in specified state.". 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 Error: 2009-05-13 15:29:26.16 Code: 0xC0016016 Source: Description: Failed to decrypt protected XML node "DTS:Password" with error 0x8009000B "Key not valid for use in specified state.". 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 Error: 2009-05-13 15:29:30.56 Code: 0xC0016016 Source: Description: Failed to decrypt protected XML node "DTS:Password" with error 0x8009000B "Key not valid for use in specified state.". 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 Error: 2009-05-13 15:29:30.66 Code: 0xC0016016 Source: Description: Failed to decrypt protected XML node "DTS:Password" with error 0x8009000B "Key not valid for use in specified state.". 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 Error: 2009-05-13 15:29:39.08 Code: 0xC0016016 Source: Description: Failed to decrypt protected XML node "DTS:Password" with error 0x8009000B "Key not valid for use in specified state.". 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 Error: 2009-05-13 15:29:39.21 Code: 0xC0016016 Source: Description: Failed to decrypt protected XML node "DTS:Password" with error 0x8009000B "Key not valid for use in specified state.". 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 Error: 2009-05-13 15:29:46.60 Code: 0xC0016016 Source: Description: Failed to decrypt protected XML node "DTS:Password" with error 0x8009000B "Key not valid for use in specified state.". 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 Error: 2009-05-13 15:29:46.69 Code: 0xC0016016 Source: Description: Failed to decrypt protected XML node "DTS:Password" with error 0x8009000B "Key not valid for use in specified state.". 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 Error: 2009-05-13 15:29:54.83 Code: 0xC0016016 Source: Description: Failed to decrypt protected XML node "DTS:Password" with error 0x8009000B "Key not valid for use in specified state.". 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 Error: 2009-05-13 15:29:54.92 Code: 0xC0016016 Source: Description: Failed to decrypt protected XML node "DTS:Password" with error 0x8009000B "Key not valid for use in specified state.". 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 Error: 2009-05-13 15:30:02.97 Code: 0xC0016016 Source: Description: Failed to decrypt protected XML node "DTS:Password" with error 0x8009000B ... The package execution fa... The step failed.

alx_81 Profilo | Guru

>Ciao a tutti
Ciao

>io ho un package sviluppato con ssis 2008, che al suo interno
>contiene 6 "execute package task" per richiamare altrettanti
>dtsx.
>
>Se lancio il dtsx dalla utility di ssis tutto ok, mentre se lo
>richiamo da un job di sql server, alla fine mi va sempre in errore
>sebbene in realtà faccia tutto cio che deve fare correttamente.
Il problema è che all'interno del package (o di uno dei dtsx figli) ci sono delle informazioni sensibili, come le credenziali, che non possono essere aperte dall'utente che sta cercando di eseguire il package, che di default è l'Agent di SQL. Prova a salvare il package con la proprietà EncryptSensitiveData WithPassword, specificando una password di protezione, anche quando lo richiami da JOB.
E cerca di non usare l'Agent ma di servirti di utenti proxy. Per maggiori info leggi questo mio articolo: http://technet.microsoft.com/it-it/library/cc825619.aspx

ciao
--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

squilibrium Profilo | Junior Member

Ciao

Infatti ho impostato il protectionlevel as "DontSaveSensitive" (le informazioni le salvo sul file di configurazione) e non mi ha generato errore. La cosa che non capisco è il perchè il package viene ugualmente eseguito e funziona correttamente pur generando eccezione alla fine...

Ti ringrazio per l'articolo, mi sembra faccia proprio al caso mio.

Ciao

alx_81 Profilo | Guru

>Infatti ho impostato il protectionlevel as "DontSaveSensitive"
>(le informazioni le salvo sul file di configurazione) e non mi
>ha generato errore. La cosa che non capisco è il perchè il package
>viene ugualmente eseguito e funziona correttamente pur generando
>eccezione alla fine...
Non so come è fatto il package, quindi non saprei così su due piedi, ma potrebbe essere che si tratti di alcune impostazioni di connectionmanager (ad esempio) che in realtà non sono necessarie per le connessioni e per di più, valutate alla fine.. Ma è un'ipotesi..

>Ti ringrazio per l'articolo, mi sembra faccia proprio al caso mio.
JOB e dtsx, i proxy vanno fatti sempre
ciao!
--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

the_driver Profilo | Senior Member

Ciao a tutti e scusate se rispondo a questo thread un pò vecchio.

In questi giorni ho sviluppatto un pacchetto SSIS (2008 R2) con all'interno 3 connection OLE DB a database sql.

Devo schedulare il pacchetto con sql agent ma continuo ad avere il problema " Failed to decrypt protected XML node "DTS:Password" ". Ho seguito la tua guida purtroppo non ne vengo a capo.

Ti spiego cosa ho fatto:

prima di tutto ho creato uno user sql specifico utilizzato nelle 3 connections. Le 3 connections sono 3 database sql server 2008r2 della stessa macchina,nello specifico l'utenza creata ha permessi (read/write) specifici su ognuno dei tre.

Il pacchetto se lanciato a mano funziona correttamente e non da problemi.

Ovviamente se lo schedulo via agent ho i famosi problemi nell'accesso alle password criptate.

Domanda 1:

devo creare un utente windows o sql da utilizzare come credential?

Domanda 2:
non capisco il significato di credential, perchè mi chiede ancora una password?

Domanda 3:

come faccio a far capire ad agent che l'utente può utilizzare il pacchetto SSIS come esecutore / viceversa,come fa questo utente a poter leggere le credenziali OLE DB del mio packege se sono cifrate?


grazie e scusa

alx_81 Profilo | Guru

>Ciao a tutti e scusate se rispondo a questo thread un pò vecchio.
Ciao

>Il pacchetto se lanciato a mano funziona correttamente e non da problemi.
Questo perchè il creatore sei tu, per te il ssis ha salvato la credenziale con cui prova a girare. E probabilmente tu sei sysadmin.

>Domanda 1:
>devo creare un utente windows o sql da utilizzare come credential?
serve un utente windows, che deve avere i permessi su dove (e per cosa) devi lavorare.

>Domanda 2:
>non capisco il significato di credential, perchè mi chiede ancora una password?
come indico nella guida:
"Come già detto, un proxy di SQL Server Agent definisce il contesto di sicurezza per uno step di un JOB e per la sua conseguente esecuzione.
Per poter creare un proxy account è necessaria una CREDENZIALE. Quest’ultima è un record che contiene i dati di autenticazione per connettersi alle risorse esterne a SQL Server."
le credential sono oggetti che servono per l'utente proxy di esecuzione. Quindi sono i mappatori tra l'utente windows (che deve esistere) e quello che lo sfrutterà per l'esecuzione (che è tipicamente il sql agent user).

>Domanda 3:
>come faccio a far capire ad agent che l'utente può utilizzare
>il pacchetto SSIS come esecutore / viceversa,come fa questo utente
>a poter leggere le credenziali OLE DB del mio packege se sono cifrate?
glielo dici assegnando il ruolo come indicato nella guida.
La credenziale salva un token di riferimento all'atto del salvataggio e applica l'autenticazione di windows per verificarsi.
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://blogs.dotnethell.it/suxstellino
http://suxstellino.wordpress.com
http://mvp.microsoft.com/profiles/Alessandro.Alpi
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5