SQL中xp_cmdshell开启和关闭详解
今天在做SQL 服务配置功能时我们需要把xp_cmdshell开启,到后面有朋友说就可以关闭结果我就找到了关于xp_cmdshell开启和关闭方法,下面与大家一起分享。xp_cmdshell
--SQL Server 2005 中引入的 xp_cmdshell 选项是服务器配置选项,使系统管理员能够控制是否可以在系统上执行 xp_cmdshell 扩展存储过程。默认情况下,xp_cmdshell 选项在新安装的软件上处于禁用状态,但是可以通过使用外围应用配置器工具或运行 sp_configure 系统存储过程来启用它,如下面的代码示例所示:
代码如下
-- To allow advanced options to be changed.
--允许高级选项将被改变
EXEC sp_configure 'show advanced options', 1
GO
-- To update the currently configured value for advanced options.
--更新当前配置的值为高级选项
RECONFIGURE
GO
-- To enable the feature.
--启用这个特性
EXEC sp_configure 'xp_cmdshell', 1
GO
-- To update the currently configured value for this feature.
--更新当前配置的值为这个特性。
RECONFIGURE
GO
另一种sp_xp_cmdshell开启与关闭xp_cmdshell实例
代码如下
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
页:
[1]