【www.bbyears.com--php与数据库】
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