关于xp_cmdshell的注意事项

本文介绍了如何在MSSQL2000中创建扩展存储过程xp_cmdshell,并在MSSQL2005中启用该功能。对于不同版本的MSSQL,提供了详细的SQL命令示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、MSSQL2000的master本身没有扩展存储过程xp_cmdshell,所以要创建一下,然后就看直接使用了:

sqlCommand.CommandText ="use master;"+
                                            "if not exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[xp_cmdshell]') and OBJECTPROPERTY(id, N'IsExtendedProc') = 1)" +
                                            "exec sp_addextendedproc 'xp_cmdshell', 'xplog70.dll'";
                    sqlCommand.ExecuteNonQuery();

 

二、MSSQL2005的master本身就有扩展存储过程xp_cmdshell,所以不用创建,但需要启用这个高级功能:

sqlCommand.CommandText = "EXEC sp_configure 'show advanced options', 1;/r/n" +
                                             "RECONFIGURE /r/n" +
                                             "EXEC sp_configure 'xp_cmdshell', 1; /r/n" +
                                             "RECONFIGURE /r/n";
                    sqlCommand.ExecuteNonQuery();

 

这个是关闭:

sqlCommand.CommandText = "EXEC sp_configure 'show advanced options', 1;/r/n" +
                                             "RECONFIGURE /r/n" +
                                             "EXEC sp_configure 'xp_cmdshell', 0; /r/n" +
                                             "RECONFIGURE /r/n";
                    sqlCommand.ExecuteNonQuery();

 

三、所以要判断MSSQL的版本:

sqlCommand.CommandText = "SELECT  SERVERPROPERTY('productversion')";
                string aa = sqlCommand.ExecuteScalar().ToString();
                if (aa.Substring(0, 1) != "8")
                {

                     //

                }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值