создать файл XML на диске другого сервера с помощью xp_cmdshell в той же сети - PullRequest
0 голосов
/ 11 ноября 2011

В моей сети два сервера: один для 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 , и эта учетная запись имеет разрешения в сети

1 Ответ

0 голосов
/ 11 ноября 2011

NT Authority \ System - локальный пользователь, и я полагаю, вы явно не дали ему разрешения на \ FirmWebOne \ c $ . Я бы изменил учетную запись, под которой работает xp_cmdshell , установив учетная запись прокси . Затем вы можете предоставить доступ этому пользователю на \ FirmWebOne \ c $

Кстати: я бы лучше не использовал C $ и не создавал общую папку. Это более управляемо и безопасно.

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