Basato sul codice Stored Proc e informazioni aggiuntive che vediamo in EDIT2 lo sappiamo:
- È stato chiamato BULK INSERT
- "l'utente ha ancora ricevuto l'errore di non avere accesso a BULK INSERT ma tutti gli altri hanno ricevuto l'errore che stavamo sollevando"
Alcune funzioni T-SQL (ad es. OPENQUERY, OPENROWSET, BULK INSERT , ecc.) esegue la pre-convalida sulla sicurezza. Un Utente deve disporre delle autorizzazioni INSERT e AMMINISTRA BULK OPERATIONS, e in alcuni casi ALTER TABLE, per eseguire BULK INSERT. Inoltre, le autorizzazioni NTFS/Active Directory per l'utente (se si utilizza l'autenticazione di Windows) o l'account "Accedi come" del servizio SQL Server (se si utilizza l'autenticazione di SQL Server) verranno convalidate per garantire che il file sia leggibile.
La pre-convalida (o almeno quella che chiamo "pre-convalida") si verifica quando viene chiamato Stored Proc (o Function, ecc.) e non quando viene eseguita ogni riga. Se a questo punto si verifica un errore, non verrà eseguito alcun codice nel tuo Proc, incluso RAISERROR o INSERT nella tabella di registro.
Pertanto, la causa più probabile del comportamento visualizzato è che l'utente che presenta il problema non dispone di a) una o più delle autorizzazioni SQL Server richieste oppure b) le autorizzazioni NTFS appropriate oppure c) tutte le sopra.
Dato che l'errore riguardava il mancato accesso a BULK INSERT, suppongo che a questo particolare utente manchi una o più autorizzazioni di SQL Server.