2012-10-09 58 views
1

作爲概念證明,我們試圖在現有解決方案中插入xp_cmdshell命令。目前的應用程序調用存儲過程我們的數據庫服務器上異形的模樣,當:從存儲過程調用xp_cmdshell

declare @P1 int 
    set @P1=1 
    exec Name_Of_The_SP @param1 = 3, @param2 = 'blah', @parametc = 'blahetc', @ID = P1 output 
    select @P1 

的SP基本上打開了一個交易,插入一行,然後提交。這裏面我們說:

exec master..xp_cmdshell 'dir > c:\test.txt' 

當我們再運行的一個代碼塊中按預期在服務器上生成該文件的SSMS查詢窗口。但是當我們使用應用程序來調用它時,這些行就像正常一樣插入,但是文件不會被生成?

SQL Server和SQLAgent用戶是本地管理員和系統管理員,因此看不到任何問題。試圖讓應用程序用戶成爲本地管理員也無濟於事,它已經是一個系統管理員。

這是SQL Server 2000中

+3

爲了避免錯誤遷徙的選民,我不認爲他們會很欣賞這個問題,因爲它並不是真正關於「以專業的身份管理計算機系統」,因爲他們在常見問題解答中有這些問題。 – dsolimano

+0

你在SQL 2000中有'sp_xp_cmdshell_proxy_account'嗎? – podiluska

+0

Podiluska,我希望作爲高手下的擴展程序嗎?如果是這樣,它不存在。使用企業管理器我確實確定了一個代理,將其作爲系統管理員和本地管理員(純粹作爲測試),並且仍以問題中概述的方式執行。 – Paul

回答

-1

我們設法弄清楚這一點 - 我們(我)在探查了EXEC是根據不同的登錄進來了俯瞰。授予對master.dbo.xp_cmdshell的執行權限特別有效。向任何花時間/精力的人道歉!