2013-02-01 2 views
1

У меня есть приложение ASP.NET на сервере A и SQL Server на сервере B. При запуске приложения он вызывает хранимую процедуру. В этой процедуре попробуйте выполнить массовую вставку из файла из общей папки на сервере A, но произошла следующая ошибка:Код ошибки операционной системы 5 (Доступ запрещен.), Когда объемная вставка

Невозможно нагрузить, поскольку файл «\ serverA_address \ sharedFolder \ test.txt» не может быть открыт. Код ошибки операционной системы 5 (Доступ запрещен.).

Странно, что, когда я выполняю объемную вставку из студии управления sql напрямую, она работает без каких-либо исключений.

Еще одно замечание: если изменить общий адрес папки в локальную папку, где SQL Server работает (сервер B) без shareing, не ошибка доступа ...

Я попытался установить разрешение bulkadmin на все пользователей, в том числе технических пользователей: sql_serviceusr, который запускает службу sql, другого технического пользователя, который запускает приложение и делает вызов на сервер sql и пользователю, который вошел в приложение. Все пользователи - это учетные записи домена и все серверы, использующие аутентификацию Kerberos.

Сервер: Windows Server 2008R2

Сервер B: Windows Server 2008R2, SQL Server 2008R2

Цените любую помощь или руководство.

+0

Причина, по которой он работает в Management Studio, но не приложение, вероятно, потому, что они используют разные учетные записи. Я предполагаю, что вы заходите в SQL в Studio, используя свои личные creds, но приложение имеет более ограниченную учетную запись (как и должно). –

ответ

0

По вашему описанию ошибки, я предполагаю, что проблема заключается в совместном использовании папки.
При совместном использовании папки вы должны предоставить доступ к пользователю, который будет обращаться к папке с удаленного компьютера, в двух местах в свойствах папки: под Поделиться вкладкой и под Безопасность вкладка.
Вы давали доступ к ним обоим?

+0

Да, я дал права доступа и поделился с конкретными пользователями. Но ничего не случилось. – Blackstar

1

Вы делаете двойной прыжок, поэтому вам нужно включить делегирование Kerberos.

1

Вы можете создать учетную запись подключения и использовать проверку подлинности SQL.

По моему опыту, чтобы наши сетевые люди правильно настроили Kerberos, это как вытаскивание зубов. Мы работали на одну славную неделю, а потом внезапно перестали работать. После этого просто не стоило хлопот.

Возможно, это не тот точный ответ, который вы ищете, но может быть временным решением для вас.