代码改变世界

SQL 中调用外部应用程序 xp_cmdshell For SQL 2005/08

2011-12-27 11:18  Andrew.Wangxu  阅读(559)  评论(0编辑  收藏  举报

这个相当于在sql中执行dos命令了,并且返回数据。

但是出于安全的原因在2005以上版本(包括05)的SQL Server都被默认禁掉了,幸运的是开启该功能的存储过程没被删除。

如果被禁掉了 则会出现如下信息:

 

消息 15281,级别 16,状态 1,过程 xp_cmdshell,第 1
SQL Server 阻止了对组件 'xp_cmdshell' 的 过程'sys.xp_cmdshell' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用 'xp_cmdshell'。有关启用 'xp_cmdshell' 的详细信息,请参阅 SQL Server 联机丛书中的 "外围应用配置器"。

 

要开启该组件的功能一句SQL语句即可搞定:

EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE;


要关闭该组件的功能也非常的简单,SQL代码如下:

EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 0;RECONFIGURE;

 

xp_cmdshell 使用例子:

exec   master..xp_cmdshell   'dir   c:\*.* '

 

如图:

 

参考:http://www.wxzzz.com/?id=80