一、‘xp_cmdshell’的啟用 SQL Server阻止了對組件‘xp_cmdshell’的過程‘sys.xp_cmdshell’的訪問。因為此組件已作為此服務囂安全配置的一部分而被關 閉。系統管理員可以通過使用sp_configure啟用‘xp_cmdshell’。有關啟用‘xp_cmdsh ...
一、‘xp_cmdshell’的啟用
SQL Server阻止了對組件‘xp_cmdshell’的過程‘sys.xp_cmdshell’的訪問。因為此組件已作為此服務囂安全配置的一部分而被關 閉。系統管理員可以通過使用sp_configure啟用‘xp_cmdshell’。有關啟用‘xp_cmdshell’的詳細信息
解決方法:
1、通過SQL語句開啟。[推薦此方法,因為在任何版本的SQL SERVER中都可以使用。]通過查詢分析器,選擇Master資料庫,然後執行以下SQL內容:
sp_configure 'show advanced options',1 reconfigure go sp_configure 'xp_cmdshell',1 reconfigure go
2、開始 --> SQL安裝目錄 --> 配置 SQL server managerment 外圍應用配置器-->“功能的外圍應用配置器”-->找到“xp_cmdshell”點擊啟用
二、SQLState = S0002, NativeError = 208 Error = [Microsoft][SQL Server Native Client 10.0][SQL Server]對象名 'XXX' 無效。
SQLState = 37000, NativeError = 8180
Error = [Microsoft][SQL Server Native Client 10.0][SQL Server]無法預定義語句。
解決方法: 數據表名補全 [庫名].[用戶名].[表名]
exec xp_cmdshell 'bcp " select * from [庫名].[用戶名].[表名]" queryout " 路徑 " -T -c -U -P '
三、SQLState = S1000, NativeError = 0
Error = [Microsoft][SQL Server Native Client 10.0]無法打開 BCP 主數據文件
解決方法:檢查存儲文件路徑是否正正確,磁碟是否存在
四、在執行 sp_xp_cmdshell_proxy_account 的過程中出錯。可能原因: 提供的帳戶無效或無法創建 '##xp_cmdshell_proxy_account##' 憑據。錯誤代碼: '0'。
master-->可編程性-->擴展存儲過程-->系統擴展存儲過程-->xp_cmdshell-->右鍵 屬性-->許可權--->添加當前執行用戶--》勾選“執行”
整體解決方法 存儲過程
CARATE PROCEDURE execname @filename nvarchar(4000),@path nvarchar(2000) AS BEGIN declare @sql nvarchar(4000) set @path=Replace (@path,'\','/'); --替換路徑符號 set @filename=Replace (@filename,'from ','from [庫名].[用戶名].'); --添加數據表全名 set @sql='bcp "'+@filename+'" queryout "'+@path+'" -T -c -U用戶名 -P密碼' exec xp_cmdshell @sql END