Com base no código do Stored Proc e nas informações adicionais que vemos em EDIT2 nós sabemos isso:
- BULK INSERT está sendo chamado
- "o usuário ainda recebeu o erro de não ter acesso ao BULK INSERT, mas todos os outros receberam o erro que estávamos gerando"
Certas funções T-SQL (por exemplo, OPENQUERY, OPENROWSET, BULK INSERT , etc) fazer pré-validação na segurança. Um usuário deve ter permissões INSERT e ADMINISTER BULK OPERATIONS e, em alguns casos, ALTER TABLE, para executar BULK INSERT. Além disso, as permissões NTFS / Active Directory para o usuário (se estiver usando a autenticação do Windows) ou a conta "Log On As" do serviço SQL Server (se estiver usando a autenticação do SQL Server) serão validadas para garantir que o arquivo seja legível.
A pré-validação (ou pelo menos o que estou chamando de "pré-validação") ocorre quando o Stored Proc (ou Function, etc) é chamado e não quando cada linha é executada. Se ocorrer um erro neste ponto, nenhum código em seu Proc será executado, incluindo o RAISERROR ou o INSERT na tabela de log.
Portanto, a causa mais provável do comportamento que você está vendo é que o usuário que tem o problema não possui a) uma ou mais das permissões necessárias do SQL Server ou b) as permissões NTFS apropriadas ou c) todas as acima de.
Dado que o erro foi sobre não ter acesso ao BULK INSERT, meu palpite é que esse usuário específico está perdendo uma ou mais das permissões do SQL Server.