Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Quali autorizzazioni sono necessarie per l'inserimento in blocco in SQL Server da una condivisione di rete con autenticazione di Windows?

Di recente abbiamo riscontrato questo problema per un certo numero di nostri sviluppatori. Ho escogitato diversi modi per consentire il test degli inserti in blocco.

La nostra preferenza era quella di utilizzare un account di servizio SQL. Abbiamo impostato il server SQL e l'agente SQL per l'esecuzione come account di servizio e quindi abbiamo consentito agli sviluppatori di attivare i processi dell'agente. All'account di servizio è stata concessa l'autorizzazione alle condivisioni UNC e tutto ha funzionato correttamente. Si noti che l'account di servizio eseguirà sempre correttamente questi processi dell'agente (supponendo che le autorizzazioni UNC siano impostate). Sono gli sviluppatori che cercano di testare che si imbattono in questi problemi.

Un altro metodo consiste nel creare una condivisione sul server SQL stesso e puntare il percorso di inserimento in blocco alla directory locale. Questi errori sembrano verificarsi solo quando si accede ai percorsi UNC. Indipendentemente dal fatto che il percorso UNC disponga delle autorizzazioni corrette per consentirti l'accesso. Ad esempio creiamo C:\test\ come cartella sul server SQL stesso e autorizzarlo a consentire a uno sviluppatore di rilasciare file di test lì. Questi vengono quindi chiamati tramite il comando di inserimento in blocco.

Potrebbe essere necessario eseguire un comando sul master per consentire a un gruppo di accesso SQL di eseguire l'inserimento in blocco. Questo è come di seguito.

GRANT ADMINISTER BULK OPERATIONS TO "domain\usergroup"