У меня есть SQL Server 2008, работающий на удаленной машине. Скажем, что машина называется XYZ. Следующие работы:Как предоставить разрешения для запуска BULK INSERT?
- Удаленный рабочий стол в XYZ
- Open SSMS, а затем подключиться к SQL Server работает на XYZ
Выполните следующие действия:
USE SampleDB GO CREATE TABLE [dbo].[SampleData]( [ColA] [varchar](50) NULL, [ColB] [varchar](500) NULL ) ON [PRIMARY] GO BULK INSERT [dbo].[SampleData] FROM "H:\Scratch\OUTPUT_Sample" WITH ( FIELDTERMINATOR = '$', ROWTERMINATOR = '\n', FIRSTROW = 2 ) GO
Это отлично работает нормально , Теперь, я подключиться к другому ABC SQL Server, выполнив следующие действия:
- Удаленный рабочий стол в XYZ
- Open SSMS, а затем подключиться к SQL Server работает на ABC
- Запустите указанный выше сценарий
я получаю следующее сообщение об ошибке:
Msg 4861, Level 16, State 1, Line 2
Cannot bulk load because the file "H:\Scratch\OUTPUT_Scratch" could not be opened. Operating system error code 3(The system cannot find the path specified.).
Может кто-нибудь сказать мне, как решить эту проблему? Думаю, мне нужно предоставить некоторые разрешения для какой-либо учетной записи, но я не уверен, как это узнать, и какие разрешения предоставить эту учетную запись. Я получаю ту же ошибку, когда я использую sqlcmd.exe
.
Любые предложения?
Я полагаю, что файл существует в файловой системе ABC? – Blorgbeard
Я немного новичок в экосистеме SQL Server, поэтому, я думаю, это мое недоразумение. Итак, когда я RDP в XYZ, а затем выполняю запрос против ABC, ищет ли он файл в удаленной файловой системе? Есть ли способ заставить его искать файл в локальной файловой системе? – Legend
Yup, SQL Server ищет файл на компьютере, на котором работает он (SQL Server) - независимо от того, откуда подключен клиент. – Blorgbeard