Esecuzione di un pacchetto SSIS di proprietà di un utente del dominio da SQL Server in esecuzione su un account di servizio locale


10

Voglio eseguire un pacchetto SSIS contenente le attività di trasferimento di oggetti SQL Server. I server coinvolti si trovano nello stesso dominio, ma i servizi di SQL Server sono in esecuzione su account di servizi locali. Quindi l'ambiente si presenta così:

Dominio

Server 1

  • SQL Server in esecuzione su un account locale
  • Sul filesystem: pacchetto SSIS
  • In SQL Server Agent: un lavoro

Server 2

  • SQL Server in esecuzione su un account locale

Per poter accedere a entrambi i server, ho creato un account di dominio da utilizzare come account di servizio. Quando utilizzo questo account di dominio per accedere al Server 1 e quindi eseguo il pacchetto dal file system, ogni passaggio ha esito positivo. Tuttavia, quando provo ad aggiungere il lavoro a SQL Server mi imbatto in uno dei seguenti problemi:

Situazione 1. Proprietario del lavoro: account locale; eseguire il passaggio SSIS come proxy per l'account di dominio . Quando imposto il proprietario del lavoro su un account locale, ma eseguo il lavoro come proxy per l'account di dominio, il lavoro stesso verrà eseguito correttamente, ma il pacchetto genera errori come

Esecuzione non riuscita con il seguente errore: "La directory 'LocalApplicationData' non esiste.".

Questo errore può essere corretto creando un accesso con diritti di amministratore per l'utente di dominio sul Server 1, ma questa ovviamente non è una soluzione desiderabile. L'aggiunta dell'account a uno dei gruppi agente / DTS di SQL Server non funziona neanche.

Situazione 2. Proprietario del lavoro: account di dominio; eseguire il passaggio SSIS come proxy per l'account di dominio . Quando imposto sia il proprietario del lavoro sia "Esegui come utente" per il passaggio all'account di dominio, il lavoro non si avvia affatto, con il seguente errore:

Impossibile determinare se il proprietario (utente Dominio \ Dominio) del lavoro Job nameha accesso al server (motivo: impossibile ottenere informazioni sul gruppo / utente "Dominio \ Utente" di Windows NT, codice di errore 0x5. [SQLSTATE 42000] (Errore 15404)) .

Credo che l'ultimo errore sia dovuto al fatto che SQL Server viene eseguito su un account locale e pertanto non è possibile esaminare i diritti degli account di dominio.

Qual è il modo giusto per eseguire il lavoro? La situazione 2 mi sembra più pulita, ma sembra impossibile perché SQL Server viene eseguito su un account locale. Anche la situazione 1 funzionerebbe, ma non concederebbe i diritti amministrativi di un utente di dominio sul mio SQL Server.


AGGIORNARE:

@JonSeigel e @ Mr.Brownstone:

Sembra plausibile che questo problema sia dovuto alla mancanza di autorizzazioni. Tuttavia, l'errore riguarda "LocalApplicationData" inesistente, una delle cartelle che viene generata per ciascun account. Ho già effettuato l'accesso al server con le credenziali con cui viene eseguito il pacchetto (con la creazione di una directory del profilo) e ho provato diverse combinazioni di autorizzazioni per la directory del profilo. Anche quando concedo manualmente quasi tutte le autorizzazioni su questa specifica directory, ottengo l'errore sopra menzionato.

Durante ulteriori ricerche, mi sono imbattuto in un thread del forum all'indirizzo http://www.sqlservercentral.com/Forums/Topic391332-148-1.aspx#bm391441 che è abbastanza simile, ma senza soluzione.


C'è un motivo per cui non si utilizza un account di dominio per i servizi SQL?
Eric Higgins,

Sì, ma non so quale motivo (suppongo che qualcosa con il ciclo DTAP e il dominio non sia disponibile ovunque). Ad ogni modo, è un determinato ambiente che non mi è permesso modificare.
vstrien,

La situazione n. 1 sembra essere la risposta. Penso che il messaggio di errore che ricevi sia all'interno del pacchetto. In altre parole, il pacchetto è in esecuzione, ma un'attività al suo interno richiede più autorizzazioni rispetto all'account del servizio concesso. Potrebbe non essere necessario concedere autorizzazioni a livello di amministratore all'account per farlo funzionare (concedere invece autorizzazioni granulari o modificare il processo per non richiedere le autorizzazioni).
Jon Seigel,

È possibile aggiungere accessi SQL (autenticazione SQL) al server SQL remoto (Server 2)? Se si dispone di tale opzione, è possibile utilizzare l'accesso SQL nella connessione SSIS utilizzata per la destinazione. Ciò significa che dovrai usare una password per crittografare il pacchetto, ma risolverà il tuo problema.
Roi Gavish,

@Justicator: Forse, come ultima risorsa. Ma ogni volta che sono possibili accessi al dominio, preferisco non usare l'autenticazione SQL.
vstrien,

Risposte:


5

La mia opinione personale è che l'opzione n. 1 è la strada da percorrere. Ma non vedo la necessità di dover concedere l'accesso all'amministratore locale all'account di dominio. Mi sembra che richieda l'accesso a determinate cartelle e file e che quindi l'utente del dominio possa accedere solo alle risorse necessarie per eseguire correttamente il pacchetto. Questo può essere fatto attraverso la finestra di dialogo delle proprietà di file / cartelle e selezionare la scheda di sicurezza - non dovrebbe essere necessario impostarlo per ogni file e cartella in quanto è possibile impostare le autorizzazioni della directory principale e impostarle per sovrascrivere le proprietà secondarie.

Spero che questo ti aiuta.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.