Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 OPENROWSET ... BULK для загрузки с одного сервера на другой  [new]
VerochkaS
Member

Откуда:
Сообщений: 117
Всем доброго времени суток!

Использую функцию OPENROWSET ... BULK для загрузки файлов CSV в базу SQL Server. Если все на одном компьютере, то все просто.

Но у нас sql server (2008R2) (server1) на одном сервере, файлы на другом (server2), а запускаю запрос из management studio на третьем.

В management studio захожу под обычным логином (не админ). Права на BULK есть.

При запуске запроса получаю следующую ошибку:
Cannot bulk load because the file "\\server2name\....\test.csv" could not be opened. Operating system error code 5(failed to retrieve text for this error. Reason: 15105).

В чем причина?

Я так понимаю, что server1 не видит server2.

Какие настройки надо сделать и как правильно прописать путь, чтобы все заработало?
29 окт 13, 13:12    [15046093]     Ответить | Цитировать Сообщить модератору
 Re: OPENROWSET ... BULK для загрузки с одного сервера на другой  [new]
Glory
Member

Откуда:
Сообщений: 104760
VerochkaS
В чем причина?

BOL - Importing Bulk Data by Using BULK INSERT or OPENROWSET - Security Considerations
29 окт 13, 13:15    [15046113]     Ответить | Цитировать Сообщить модератору
 Re: OPENROWSET ... BULK для загрузки с одного сервера на другой  [new]
VerochkaS
Member

Откуда:
Сообщений: 117
И можно ли что-нибудь сделать, чтобы я могла еще загружать файлы со своего компьютера (которые на локальном диске)?

К серверу2 доступ имею и вручную файлы открывать могу.
29 окт 13, 13:15    [15046116]     Ответить | Цитировать Сообщить модератору
 Re: OPENROWSET ... BULK для загрузки с одного сервера на другой  [new]
Александр52
Member

Откуда: Кокосовые острова ส็็็็็
Сообщений: 5133
VerochkaS,
Operating system error code 5

это ошибка доступа, прав не хватает
29 окт 13, 13:16    [15046125]     Ответить | Цитировать Сообщить модератору
 Re: OPENROWSET ... BULK для загрузки с одного сервера на другой  [new]
VerochkaS
Member

Откуда:
Сообщений: 117
Glory,

у меня windows аутентификация в sql. со своего компьютера я спокойно могу открывать тот файл, что на втором сервере. а через sql не могу.

"Предположим, пользователь вошел в экземпляр SQL Server с проверкой подлинности Windows. Чтобы иметь возможность воспользоваться BULK INSERT или OPENROWSET для импорта данных из файла данных в таблицу SQL Server, учетная запись должна иметь доступ на чтение этого файла данных. Если же пользователь имеет доступ к файлу данных, то он может импортировать данные из файла в таблицу даже в том случае, когда процесс SQL Server не имеет прав доступа к файлу. Пользователь не должен предоставлять процессу SQL Server права на доступ к файлу. " (msdn)

у моей учетной записи windows есть права на доступ к этому файлу, но вот через сервер не открывается
29 окт 13, 13:28    [15046199]     Ответить | Цитировать Сообщить модератору
 Re: OPENROWSET ... BULK для загрузки с одного сервера на другой  [new]
Glory
Member

Откуда:
Сообщений: 104760
VerochkaS
у моей учетной записи windows есть права на доступ к этому файлу, но вот через сервер не открывается

Серверу обманывать незачем. Это программа, а не человек.
29 окт 13, 13:31    [15046224]     Ответить | Цитировать Сообщить модератору
 Re: OPENROWSET ... BULK для загрузки с одного сервера на другой  [new]
VerochkaS
Member

Откуда:
Сообщений: 117
Glory,

это понятно. Но почему, когда я со своего компьютера через проводник открываю файл \\server2name\....\test.csv, все выполняется.

а вот через management studio не работает? с windows - аутентификацией
29 окт 13, 14:02    [15046468]     Ответить | Цитировать Сообщить модератору
 Re: OPENROWSET ... BULK для загрузки с одного сервера на другой  [new]
VerochkaS
Member

Откуда:
Сообщений: 117
Может, нет связи межде сервером, на котором sql и серверо, на котором файл?
29 окт 13, 14:05    [15046493]     Ответить | Цитировать Сообщить модератору
 Re: OPENROWSET ... BULK для загрузки с одного сервера на другой  [new]
Glory
Member

Откуда:
Сообщений: 104760
VerochkaS
это понятно. Но почему, когда я со своего компьютера через проводник открываю файл \\server2name\....\test.csv, все выполняется.

А какая свзять должна быть у mssql с вашим проводником ?


VerochkaS
а вот через management studio не работает? с windows - аутентификацией

Значит что-то неправильно сделано
Например
exec master..xp_cmdshell 'dir \\server2name\....\test.csv'
что дает ?
29 окт 13, 14:05    [15046498]     Ответить | Цитировать Сообщить модератору
 Re: OPENROWSET ... BULK для загрузки с одного сервера на другой  [new]
VerochkaS
Member

Откуда:
Сообщений: 117
Glory,

Glory
А какая свзять должна быть у mssql с вашим проводником ?


Я так понимаю, что, когда я запускаю через проводник, я же запускаю файл под своим windows логином. раз открывается, значит, права есть. Кроме того, я создала этот файл. как я могу не иметь на него права?


Glory
Значит что-то неправильно сделано
Например
exec master..xp_cmdshell 'dir \\server2name\....\test.csv'
что дает ?


у меня нет прав на запуск этой процедуры


у меня такое подозрение, что все-таки сервер с sql не видит сервер с файлом. а мой компьютер видит и тот и другой. может, такое быть?
29 окт 13, 14:18    [15046594]     Ответить | Цитировать Сообщить модератору
 Re: OPENROWSET ... BULK для загрузки с одного сервера на другой  [new]
Glory
Member

Откуда:
Сообщений: 104760
VerochkaS
Я так понимаю, что, когда я запускаю через проводник, я же запускаю файл под своим windows логином. раз открывается, значит, права есть. Кроме того, я создала этот файл. как я могу не иметь на него права?

Осталось только проверить, что OPENROWSET тоже будет использовать эту же учетную запись

VerochkaS
у меня нет прав на запуск этой процедуры

Но вы почему то уверены, что доступ через OPENROWSET будет именно под вашей сетевой учетной записью

VerochkaS
у меня такое подозрение, что все-таки сервер с sql не видит сервер с файлом. а мой компьютер видит и тот и другой. может, такое быть?

Еще раз
Operating system error code 5 - это Access denied
29 окт 13, 14:22    [15046622]     Ответить | Цитировать Сообщить модератору
 Re: OPENROWSET ... BULK для загрузки с одного сервера на другой  [new]
VerochkaS
Member

Откуда:
Сообщений: 117
Glory,

Glory
Осталось только проверить, что OPENROWSET тоже будет использовать эту же учетную запись


А как?

Glory
Но вы почему то уверены, что доступ через OPENROWSET будет именно под вашей сетевой учетной записью

Просто я не понимаю, под какой еще записью он может быть

Кстати, возник вопрос - в данном случае файл мой (я его создала и в свойствах, я как владелец), но вот как быть с другими тогда, которые создавались не мной?
29 окт 13, 14:45    [15046763]     Ответить | Цитировать Сообщить модератору
 Re: OPENROWSET ... BULK для загрузки с одного сервера на другой  [new]
Glory
Member

Откуда:
Сообщений: 104760
VerochkaS
Просто я не понимаю, под какой еще записью он может быть

Под другой

VerochkaS
А как?

У вас нет прав на такую проверку
29 окт 13, 14:47    [15046776]     Ответить | Цитировать Сообщить модератору
 Re: OPENROWSET ... BULK для загрузки с одного сервера на другой  [new]
VerochkaS
Member

Откуда:
Сообщений: 117
Glory,

хорошо. а Вы можете что-то посоветовать в данном случае?

Как лучше поступить, если считать, что у меня всегда будут эти 3 элемента (сервер1, сервер2 и мой комп)?

Мне нужны какие-то права в sql? или как-то функцию от имени другого пользователя я должны запускать?

В каком направлении хотя бы посмотреть? Я могу с администратором sql пообщаться, если что нужно
29 окт 13, 14:51    [15046815]     Ответить | Цитировать Сообщить модератору
 Re: OPENROWSET ... BULK для загрузки с одного сервера на другой  [new]
Glory
Member

Откуда:
Сообщений: 104760
VerochkaS
В каком направлении хотя бы посмотреть? Я могу с администратором sql пообщаться, если что нужно

Покажите ему статью хелпа. Пусть проверяет.
29 окт 13, 14:52    [15046826]     Ответить | Цитировать Сообщить модератору
 Re: OPENROWSET ... BULK для загрузки с одного сервера на другой  [new]
VerochkaS
Member

Откуда:
Сообщений: 117
Glory,

хорошо.

спасибо большое!
29 окт 13, 14:57    [15046853]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить