xp_cmdshell
--SQL Server 2005 中引入的 xp_cmdshell 选项是服务器配置选项,使系统管理员能够控制是否可以在系统上执行 xp_cmdshell 扩展存储过程。默认情况下,xp_cmdshell 选项在新安装的软件上处于禁用状态,但是可以通过使用外围应用配置器工具或运行 sp_configure 系统存储过程来启用它,如下面的代码示例所示:
代码如下 | 复制代码 |
-- To allow advanced options to be changed. |
另一种sp_xp_cmdshell开启与关闭xp_cmdshell实例
代码如下 | 复制代码 |
[sql] USE master GO IF OBJECT_ID('sp_xp_cmdshell', 'P') IS NOT NULL DROP PROC sp_xp_cmdshell GO CREATE PROCEDURE sp_xp_cmdshell @OnOff CHAR(3) ='ON' AS /* 作者:陈恩辉-弘恩 示例: exec sp_xp_cmdshell @OnOff = 'ON' --开启 xp_cmdshell功能 exec sp_xp_cmdshell @OnOff = 'OFF' --关闭 xp_cmdshell功能 */ IF UPPER(@OnOff) NOT IN ( 'ON', 'OFF' ) BEGIN SELECT '参数 @OnOff 只能是 ON,OFF ' AS return_result RETURN END IF UPPER(@OnOff) = 'ON' BEGIN -- 允许配置高级选项 EXEC master.sys.sp_configure 'show advanced options', 1 -- 重新配置 RECONFIGURE -- 启用xp_cmdshell EXEC master.sys.sp_configure 'xp_cmdshell', 1 --重新配置 RECONFIGURE END ELSE BEGIN -- 关闭xp_cmdshell EXEC master.sys.sp_configure 'xp_cmdshell', 0 --重新配置 RECONFIGURE -- 关闭配置高级选项 EXEC master.sys.sp_configure 'show advanced options', 0 -- 重新配置 RECONFIGURE END GO EXEC sp_MS_marksystemobject 'sp_xp_cmdshell' GO |