23 messaggi dal 06 settembre 2002
Ciao a tutti, scrivo per un problema nell'esecuzione di un DTS Package. Ho creato un pacchetto che fa due cose molto semplici: azzera il contenuto di una tabella Sql Server e importa nella stessa tabella il contenuto di un file testo in formato .csv.

Se lancio il pacchetto manualmente funziona perfettamente, mentre invece se imposto la schedulazione ottengo questo messaggio di errore

Message: The job failed. Unable to determine if the owner (mydomain\testuser) of job OggiSuccede has server access (reason: Could not obtain information about Windows NT group/user 'mydomain\testuser'. [SQLSTATE 42000] (Error 8198)).

Sono all'interno di un dominio e l'owner del job (testuser) ha accesso al datbase sql server oggetto dell'importazione e ha anche i permessi di lettura/scrittura sulla share di rete dove si trova il file testo.

Nota: il DTS e' impostato su Sql Server 2000 con S.O. WIndows 2000 Server con tutti i service pack installati

1) Se uso testuser per eseguire il dts schedulato la procedura si blocca subito

2) Ho provato a impostare l'utente 'sa' come owner del job: la tabella viene azzerata (il primo step viene eseguito), ma l'importazione fallisce perche' sa non ha (immagino) i permessi sulla cartella dove si trova il file.

Spero di essere stato abbastanza chiaro: qualcuno sa darmi una soluzione al problema ?

Grazie in anticipo a chi mi rispondera'
1.976 messaggi dal 27 luglio 2005
Contributi
salve,
buono ha scritto:
Ciao a tutti, scrivo per un problema nell'esecuzione di un DTS Package. Ho creato un pacchetto che fa due cose molto semplici: azzera il contenuto di una tabella Sql Server e importa nella stessa tabella il contenuto di un file testo in formato .csv.

Se lancio il pacchetto manualmente funziona perfettamente, mentre invece se imposto la schedulazione ottengo questo messaggio di errore

Message: The job failed. Unable to determine if the owner (mydomain\testuser) of job OggiSuccede has server access (reason: Could not obtain information about Windows NT group/user 'mydomain\testuser'. [SQLSTATE 42000] (Error 8198)).

Sono all'interno di un dominio e l'owner del job (testuser) ha accesso al datbase sql server oggetto dell'importazione e ha anche i permessi di lettura/scrittura sulla share di rete dove si trova il file testo.

Nota: il DTS e' impostato su Sql Server 2000 con S.O. WIndows 2000 Server con tutti i service pack installati

1) Se uso testuser per eseguire il dts schedulato la procedura si blocca subito

2) Ho provato a impostare l'utente 'sa' come owner del job: la tabella viene azzerata (il primo step viene eseguito), ma l'importazione fallisce perche' sa non ha (immagino) i permessi sulla cartella dove si trova il file.


l'esecuzione "diretta" di un processo viene eseguita nel contesto dell'utente correntemente connesso, dove invece l'esecuzione schedulata avviene nel contesto di sicurezza dell'account che esegue SQL Server Agent...
verifica quindi i permessi di tale account

poi, genericamente, l'eccezione indicata puo' essere sollevata in caso di presenza di Win2000 e WinNT nello stesso dominio... in questi casi puo' essere necessario aggiungere l'account nel gruppo 'Pre-Windows 2000 Compatible Access' e rebootare i server..

vedi anche http://tinyurl.com/8rty6
saluti

Andrea Montanari
http://www.hotelsole.com - http://www.hotelsole.com/asql/index.php
23 messaggi dal 06 settembre 2002
Prima di tutto, grazie per la risposta. Il dominio e' un dominio Windows2000, non ci sono server Windows NT.
Sql Server Agent gira come Local System Account: devo farlo girare usando come utente di logon un utente di dominio che abbia

1) Accesso al database Sql Server

2) Accesso alla share di rete dove si trova il file di testo.

E' giusta la mia analisi ? Se sì, questa modifica puo' avere conseguenze sulle applicazioni web (asp e asp.net) che si appoggiano allo stesso database oppure e' ininfluente ?

Grazie

Marco Marcon
mmarcon@libero.it
1.976 messaggi dal 27 luglio 2005
Contributi
salve Marco,
Prima di tutto, grazie per la risposta. Il dominio e' un dominio Windows2000, non ci sono server Windows NT.
Sql Server Agent gira come Local System Account: devo farlo girare usando come utente di logon un utente di dominio che abbia

1) Accesso al database Sql Server


decisamente si


2) Accesso alla share di rete dove si trova il file di testo.


si...
utilizza l'apposita funzionalita' nelle "Proprieta'" dell'Agente SQL Server, che mette a posto anche tutte le richieste di privilegio a livello sia di file system locale che di registro di Windows (sempre locale  )


E' giusta la mia analisi ? Se sì, questa modifica puo' avere conseguenze sulle applicazioni web (asp e asp.net) che si appoggiano allo stesso database oppure e' ininfluente ?


la tua analisi e' corretta...
relativamente a asp e asp.net, tu non stai toccando l'account che esegue IIS, quindi non c'e' nessuna novita' in tal senso...
saluti

Andrea Montanari
http://www.hotelsole.com - http://www.hotelsole.com/asql/index.php
1.024 messaggi dal 19 dicembre 2003
Contributi | Blog
buono ha scritto:

Se lancio il pacchetto manualmente funziona perfettamente, mentre invece se imposto la schedulazione ottengo questo messaggio di errore

Message: The job failed. Unable to determine if the owner (mydomain\testuser) of job OggiSuccede has server access (reason: Could not obtain information about Windows NT group/user 'mydomain\testuser'. [SQLSTATE 42000] (Error 8198)).

Sono all'interno di un dominio e l'owner del job (testuser) ha accesso al datbase sql server oggetto dell'importazione e ha anche i permessi di lettura/scrittura sulla share di rete dove si trova il file testo.


A quanto ti ha già detto Andrea ci sono da aggiungere delle considerazioni legate all'owner del job.
Se il proprietario del job NON è un account di tipo sysadmin, il job viene eseguito con le credenziali di un "account speciale" che viene definito nel contesto di sicurezza del "SQL Agent Proxy Account". Si tratta di un utente DISABILITATO PER DEFAULT (ed è bene che rimanga disabilitato) configurabile, in EM, attraverso le proprietà di SQL Agent (tab Job System).
Dal momento che non vedo alcuna necessità di far appartenere un job ad un utente non-sysadmin, o peggio ancora permettere a un non-sysadmin di creare dei job (a tale scopo sono solito rimuovere l'utente guest dall'msdb), direi che il problema può essere risolto assegnando l'ownership del job ad un account sysadmin e concedendo all'account SQLAgent i necessari permessi NTFS.

Bye
23 messaggi dal 06 settembre 2002
Seguendo i vostri consigli, adesso funziona tutto.

Grazie!!!

Marco Marcon
mmarcon@libero.it

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.