Проблема массового доступа к SQL Server - PullRequest
5 голосов
/ 24 июня 2009

Я пытаюсь выполнить массовую вставку на SQL Server:

BULK INSERT SampleData FROM '<UNC_Path>'
WITH ( FIELDTERMINATOR = '|', ROWTERMINATOR = '\n' )

Это работает на моей локальной базе данных, но когда я пытаюсь запустить на нашем сервере dev, я получаю следующую ошибку:

"Невозможно выполнить массовую загрузку, поскольку не удалось открыть файл" ... ". Код ошибки операционной системы 5 (доступ запрещен).

И моя учетная запись, и учетная запись службы SQL имеют доступ к пути. Мой сетевой администратор работает с делегатами, чтобы заставить это работать, но у него заканчиваются идеи. Кто-нибудь здесь видел эту проблему раньше?

1 Ответ

3 голосов
/ 24 июня 2009

Цитата Ремус Русану :

Ваш клиент аутентифицируется с помощью SQL Сервер, затем SQL Server олицетворяет клиент и пытается получить доступ к UNC дорожка. Это делегирование и неявно запрещено. Вы должны взять явные шаги, чтобы включить ограниченное делегирование для SQL Учетная запись службы сервера. Видеть это статья, объясняющая детали: http://msdn.microsoft.com/en-us/library/ms998355.aspx В статье показаны ограничения делегирование для службы ASP доступ к внутренней базе данных, но в вашем случае это будет SQL Сервер посередине доступа к общая часть UNC.

В качестве альтернативы, вы можете подключиться к Sql Server, используя Sql Authentication. Это приведет к тому, что Sql Server получит доступ к общим ресурсам под своей учетной записью.

А вы уверены, что массовая вставка выполняется под учетной записью Sql Server? Если это пакетное задание, оно, вероятно, выполняется под учетной записью агента сервера Sql. По умолчанию это system \ NetworkService. Измените его на пользователя домена с доступом к общему ресурсу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...