БОЛЬШАЯ ошибка вставки с путем UNC и аутентификацией Windows - PullRequest
3 голосов
/ 12 мая 2009

У меня есть два сервера, один - сервер приложений, на котором есть веб-сервис, а другой - сервер БД, на котором есть БД SQL-сервера 2005. Webservice - это приложение vb.net, и все входные файлы будут на сервере приложений. Когда мое приложение вызывает (через веб-сервис) сервер БД для выполнения оператора вставки BULK с UNC-путем (сервера приложений) с использованием проверки подлинности Windows (встроенная защита), то происходит сбой с ошибкой -

System.Data.SqlClient.SqlException: Невозможно выполнить массовую загрузку, поскольку файл "\ Servername \ Foldername \ file1.txt" не может быть открыт. Код ошибки операционной системы 5 (ошибка не найдена). в System.Data.SqlClient.SqlConnection.OnError (исключение SqlException, логическое breakConnection) в System.Data.SqlClient.SqlInternalConnection.OnError (исключение SqlException, логическое breakConnection)

Я являюсь администратором на обоих серверах, и веб-служба работает на моих учетных данных пользователя, а также я работаю в SA на базе данных SQL. SQL-сервер работает под учетной записью локальной системы. Я изменил его для запуска на моей учетной записи пользователя, но не повезло! Однако тот же оператор работает, когда я использую аутентификацию SQL в строке подключения.

Может кто-нибудь, пожалуйста, пролить свет на эту проблему.

Заранее спасибо

Sai

Ответы [ 2 ]

4 голосов
/ 13 мая 2009

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

1 голос
/ 12 мая 2009

Некоторые идеи для устранения неисправностей, в случайном порядке:

Работает ли массовая вставка при запуске из Sql Server Management Studio?

Должно помочь изменение учетной записи, под которой работает служба MSSQLSERVER, но перезапускали ли вы Sql Server после изменения учетных данных?

Создайте командную оболочку, которая запускается под тем же пользователем, что и Sql Server:

runas /noprofile /user:domain\username cmd

А затем посмотрите, разрешено ли вам читать сетевой ресурс:

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