В моей сети два сервера: один для RDBMS (Sql Server 2005), а второй - веб-сервер (на котором работает IIS 7.5).
Локальный IP-адрес сервера RDBMS: 192.168.1.5 и UNC-имя DataOne
Локальный IP-адрес веб-сервера 192.168.1.4 , а UNC-имя FirmWebOne
С помощью следующего блока я могу выполнить запрос и создать XML-файл на C: для компьютера сервера RDBMS.Он отлично работает.
DECLARE @FileName VARCHAR(50)
DECLARE @SQLCmd VARCHAR(500)
SELECT @FileName = N'\\192.168.1.5\c$\trial_1.xml'
SELECT @SQLCmd = 'bcp ' +
'"SELECT I.code,L.name ' +
' FROM Portal.dbo.inventory I LEFT JOIN Portal.dbo.inventoryLocalization L ON I.code = L.code AND L.language =''en'' ' +
' FOR XML PATH(''Product''), ROOT(''Products''), TYPE "' +
' queryout ' + @FileName +
' -w -T -S' + @@ServerName
SELECT @SQLCmd AS 'Command to execute'
EXECUTE master..xp_cmdshell @SQLCmd
Могу ли я создать этот XML-файл на диске веб-сервера?
Я устал IP-адрес веб-сервера как N '\ 192.168.1.4 \ c $ \ trial_1.xml'
и UNC-адрес веб-сервера как N' \ FirmWebOne \ c $ \ trial_1.xml '
, но он возвращает следующие ошибки.
SQLState = S1000, NativeError = 0Ошибка = [Microsoft] [Собственный клиент SQL] Невозможно открыть файл данных хоста BCP
Есть идеи?
Заранее спасибо ...
PS: кстати, я проверил учетную запись с EXECUTE master..xp_cmdshell 'whoami.exe', он возвращает nt полномочия \ system , и эта учетная запись имеет разрешения в сети