2011-11-11 10 views
0

RDBMS(Sql Server 2005)用のサーバーが2台あり、2台目のサーバーはIIS 7.5を実行するWebサーバーです。同じネットワーク上のxp_cmdshellを使用して他のサーバーのディスクにXMLファイルを作成

RDBMSサーバーのローカルIPは、192.168.1.5で、UNC名はDataoneのある

WebサーバのローカルIPは、192.168.1.4で、UNC名は、次のブロックIでFirmWebOne

ですC:でRDBMSサーバー・マシン用の照会を実行し、xmlファイルを作成することができます。 正常に動作します。

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 

Webサーバーのディスクにxmlファイルを作成できますか?

私は

'\ FirmWebOne \ C $ \ trial_1.xml' NとNのように疲れたWebサーバーのIP '\ 192.168.1.4 \ C $ \ trial_1.xml'

とWebサーバーのUNCアドレスを持っています

ですが、以下のエラーが返されます。

SQLSTATE = S1000、NativeErrorに= 0 エラー= [Microsoft]の[SQLネイティブクライアント] BCPホストデータファイル

任意のアイデアを開くことができませんか?事前に

おかげで...

はPS:ところで、私はそれがNT AUTHORITY \システムを返し、このアカウントが権限を持っている 'をwhoami.exe' master..xp_cmdshellをEXECUTEのアカウントをチェックしていますネットワーク上の

答えて

0

NT AUTHORITY \システムはローカルユーザであると私はあなたが明示的に$ cは\ FirmWebOne \に彼に権限を与えていないと思います。 xp_cmdshellが実行されているアカウントをproxy accountに変更します。次に、このユーザーへのアクセスを許可することができます\ FirmWebOne \ c $

私はC $の使用を避け、共有フォルダを作成してください。より管理しやすく安全です。

+0

私はエラーがsp_xp_cmdshell_proxy_accountの実行中に発生した」EXEC sp_xp_cmdshell_proxy_account「FirmWebOne \ SqlBulk」、「パス」 が、私は を取得し、この時間を使用して考えられる理由:提供されたアカウントが無効だったか 『## xp_cmdshell_proxy_account ##』資格情報を作成できませんでした。エラーコード: '1326' "エラー。 ユーザー名とパスワードが正しい。 –

+0

DataOneサーバーでアカウントを作成する必要があります。そうしないと、SQL Serverはアカウントを表示せず、プロキシも作成しません。 – Sheva

+0

ok ... befor SELECT @SQLCmd AS '実行するコマンド'、次のように入力します。 EXEC master..xp_cmdshell 'net use T:\\ FirmWebOne \ here_ShareFolderNAme here_password/USER:FirmWebOne \ here_AccountName/PERSISTENT:yes'それが行われます。ありがとう –

関連する問題