Может ли кто-нибудь помочь мне с этим?
BULK INSERT DATABESE01.dbo.TABLE01
FROM '\\COMPUTER01\FOLDER01\TextFile.txt'
WITH
(
FIELDTERMINATOR = ' ',
rowterminator = '\n',
tablock
)
Ошибка показывает, не удалось открыть:
Не удалось выполнить массовую вставку, поскольку не удалось открыть файл '\ SERVERNAME \ FOLDERNAME \ textFile.txt'. Код ошибки операционной системы 5 (доступ запрещен.)
Путь находится на другом компьютере в сети.
sql-server
bulk-insert
Джонас Айви В. Империал
источник
источник
'\\COMPUTER01\FOLDER01\TextFile.txt'
? Обратите внимание, что учетная запись, как правило, будет отличаться от вашей учетной записи.Ответы:
Я собираюсь сделать прыжок в веру и предположить, что вы подключаетесь к SQL Server с использованием аутентификации Windows. В таком случае у вас есть двойной переход Kerberos: один переход - это ваше клиентское приложение, подключающееся к SQL Server, второй переход - это SQL Server, подключающийся к удаленному
\\COMPUTER01
. Такой двойной переход подпадает под ограничения Ограниченного делегирования, и вы в конечном итоге получаете доступ к общему ресурсу как анонимный вход и, следовательно, доступ запрещен.Чтобы устранить эту проблему, необходимо включить ограниченное делегирование для учетной записи службы SQL Server. В этом блоге Практическое руководство. Массовая вставка SQL Server с ограниченным делегированием (в доступе отказано) приведен пример того, как это сделать, и я действительно надеюсь, что шаг о том, как «включить неограниченное делегирование» - это просто опечатка, поскольку неограниченное делегирование является просто зло.
В случае, если я перепрыгнул через оружие, и вы входите в SQL Server с использованием аутентификации SQL, вам нужно будет создать учетные данные для входа в SQL и использовать их для доступа к сетевым ресурсам. См
CREATE CREDENTIAL
.источник
Sql Server попытался открыть файл, файловый сервер сказал ему «Доступ запрещен», поскольку учетная запись, под которой работает SQL Server, не имеет разрешения на открытие файла. Измените настройки безопасности файла соответствующим образом, и он будет работать.
источник
Я запускал сценарий под именем входа в SQL (с разрешением bulkadmin) и разрешал аутентификацию в сетевой папке с использованием учетной записи службы SQL или учетной записи агента SQL Server.
источник
Я скажу вам, что работает для меня каждый раз, когда я получаю это сообщение. я открываю файл csv как текст в блокноте и удаляю все пробелы в файле, я не могу видеть эти пустые строки в файле excel. Обычно это просто последняя строка, которая появляется, хотя она пуста
источник