2014-01-18 56 views
2

編輯:xp_cmdshell的訪問被拒絕 - 2012開發版安裝在Windows 8

我把它通過進入計算機管理和更改SQL服務的登錄到使用本地帳戶來運行。


我在Windows 8.1筆記本電腦上安裝了SQL Server 2012 Developer Edition(SP1)的副本。我創建了一個專門用來測試使用存儲過程進行文件導入/導出的文件夾。該位置爲:C:\ SQL

當我運行

exec xp_cmdshell 'dir c:\sql' 

它返回該文件夾的內容。當我運行

exec xp_cmdshell 'dir c:\sql > dir c:\sql\dir.txt' 

它返回訪問被拒絕

所以我四處張望了一下,看到這個

EXEC xp_cmdshell 'osql -E -Q"select suser_sname()"' 

,並添加MSSQLSERVER到用戶組,並專門有完全訪問C:\ SQL。

有沒有人有進一步的建議?

感謝

回答

1

是,正在運行的SQL帳戶已經有prevledges到C:\ SQL目錄。

但是,您的問題是語法錯誤。一個額外的'dir'命令。試試這個更正的。

-- pipe output to dir.txt 
exec xp_cmdshell 'dir c:\sql > c:\sql\dir.txt' 

在我的SQL Server 2012 Developer中,它作爲一個值返回null。但目錄列表存在。我改爲c:\ temp來執行。

enter image description here

+0

這是我的一個粘貼錯誤,對不起。這很有趣,我會設置xp_cmdshell來執行更復雜的權限問題(網絡上的多臺服務器等),但我從來沒有在本地設置它,我認爲它可能是Windows 8是一個奇怪的鳥。 –

+0

好的,請給我信用。 –