http://sharedderrick.blogspot.tw/2009/04/sql-server-2008-surface-area.html
為了安全起見,預設在「介面區組態」內的功能,都已經停用。
xp_cmdshell (Transact-SQL)
繁衍 Windows 命令 Shell 並傳入字串中以供執行。任何輸出都會當作文字資料列來傳回。
xp_cmdshell 繁衍的 Windows 處理序擁有與 SQL Server 服務帳戶相同的安全性權限。
xp_cmdshell 會同步操作。完成 command-shell 命令時,才會將控制權傳回呼叫者。
若你確認需要啟用或是停用介面區組態上的功能,請參考以下的步驟:
使用 SQL Server Management Studio 中的「Facet」來設定啟用和停用 SQL Server 功能。
1. 使用 SQL Server Management Studio,連接到目標的 SQL Server。
2. 在 [物件總管] 中,點選目標伺服器,滑鼠右鍵,選擇「Facet」。 請參考下圖所示:
3. 在「檢視 Facet」視窗,在右邊的「Facet」區域,選擇「介面區組態」。
4. 在右下角的「Facet屬性」區域,選擇所需要啟用或是停用的功能。
請參考下圖所示:
以下為使用 sp_configure 來啟用 xp_cmdshell:
--01 查詢是否已經啟用 xp_cmdshell SELECT name N'組態選項的名稱', value N'針對這個選項所設定的值', value_in_use N'這個選項目前有效的執行值', description N'組態選項的描述' FROM sys.configurations WHERE name='xp_cmdshell' --02 設定啟用 xp_cmdshell USE master; GO EXEC sp_configure 'show advanced option', '1'; GO RECONFIGURE GO -- EXEC sp_configure 'xp_cmdshell', '1' RECONFIGURE WITH OVERRIDE GO --03 再度查詢是否已經啟用 xp_cmdshell SELECT name N'組態選項的名稱', value N'針對這個選項所設定的值', value_in_use N'這個選項目前有效的執行值', description N'組態選項的描述' FROM sys.configurations WHERE name='xp_cmdshell'