Na podstawie kodu Stored Proc i dodatkowych informacji, które widzimy w sekcji EDIT2 wiemy, że:
- Nazywamy się BULK INSERT
- „użytkownik nadal otrzymywał błąd dotyczący braku dostępu do BULK INSERT, ale wszyscy inni otrzymali błąd, który zgłaszaliśmy”
Niektóre funkcje T-SQL (np. OPENQUERY, OPENROWSET, BULK INSERT itp.) przeprowadzają wstępną walidację bezpieczeństwa. Użytkownik musi mieć uprawnienia INSERT i ADMINISTER BULK OPERATIONS, aw niektórych przypadkach ALTER TABLE, aby wykonać BULK INSERT. Dodatkowo, uprawnienia NTFS / Active Directory dla użytkownika (w przypadku korzystania z uwierzytelniania Windows) lub konta „Zaloguj się jako” usługi SQL Server (w przypadku korzystania z uwierzytelniania SQL Server) zostaną zweryfikowane w celu zapewnienia, że plik jest czytelny.
Wstępna walidacja (lub przynajmniej to, co nazywam „wstępną walidacją”) ma miejsce, gdy wywoływana jest przechowywana procedura (lub funkcja itp.), a nie podczas wykonywania każdej linii. Jeśli w tym momencie wystąpi błąd, żaden kod w procedurze nie zostanie wykonany, w tym RAISERROR lub INSERT do tabeli dziennika.
Dlatego najbardziej prawdopodobną przyczyną obserwowanego zachowania jest brak a) jednego lub więcej wymaganych uprawnień programu SQL Server lub b) odpowiednich uprawnień NTFS lub c) wszystkich powyżej.
Biorąc pod uwagę, że błąd dotyczył braku dostępu do BULK INSERT, przypuszczam, że ten konkretny użytkownik nie ma jednego lub więcej uprawnień SQL Server.