金蝶商贸版 提示:SQL Server阻止了对组件xp_cmdshell过程
来源: 添加时间:1970-01-01 访问次数:
新建账套时提示:SQL Server阻止了对组件xp_cmdshell过程的解决方案
【背景】:
使用金蝶KIS商贸版V2.0进行新建账套操作,在完成最后一步设置点击确定按钮时,系统提示:
数据库升级失败!SQL文件不全或SQL语句有误!
错误描述:SQL Server阻止了对组件‘xp_cmdshell’的过程‘sys.xp_cmdshell’的访问。因为此组件已作为此服务嚣安全配置的一部分而被关闭。系统管理员可以通过使用sp_configure启用‘xp_cmdshell’。有关启用‘xp_cmdshell’的详细信息,请参阅sQL帮助文件。
以至于新建账套不成功。
【分析】:
查询网络资料以及SQL帮助可知,xp_cmdshell可以让系统管理员以操作系统命令行解释器的方式执行给定的命令字符串,并以文本行方式返回任何输出,是一个功能非常强大的扩展存贮过程。一般情况下,xp_cmdshell对管理员来说也是不必要的,xp_cmdshell的消除不会对Server造成任何影响。在执行某些SQL的操作时,SQL系统需要此服务开启,如本例中的新建账套的操作。
【处理】:
1、在查询分析器中执行命令
通过查询分析器,选择Master数据库,然后执行以下SQL内容:
sp_configure 'show advanced options',1
reconfigure
go
sp_configure 'xp_cmdshell',1
reconfigure
go
执行成功后,SQL将显示以下信息:
2、新建账套
完成上述操作后,再进行账套新建,即可成功了。
说明事项:
1)、Xp_cmdshell是sql数据库master库下面的系统存储过程,是进入操作系统的最佳捷径,也是数据库留给操作系统的一个大后门。由于在授予用户执行 xp_cmdshell 的权限后,就允许用户在SQL中通过xp_cmdshell执行其他的操作;这时如果sa密码为空或者很容易被破解,则攻击者就会利用xp_cmdshell来执行任何command命令来操作您的computer。
2)、如果你不需要扩展存储过程xp_cmdshell,请把它去掉,可以使用以下SQL语句实现:
use master
sp_dropextendedproc 'xp_cmdshell'
3)、如果你需要这个存储过程,可以使用以下语句把它恢复过来:
sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll'
前提是最好在sql server用户管理下将各权限级别高的用户做成强壮密码。
4)如果需要关闭xp_cmdshell,则请执行以下SQL:
exec sp_configure 'xp_cmdshell', 0
reconfigure
exec sp_configure 'show advanced options', 0
reconfigure
版权与免责声明:
1.凡本网注明来源为“本站原创”的所有作品,包括文字与图片,未经本网授权不得转载。违反上述声明者,本网将依法追究法律责任。
2.凡注明"来源:xxx(非本站)"的作品,均转载自其它媒体,本网转载的目的在于传播更多信息,此类稿件并不代表本网观点,本网不承担此类稿件侵权行为的直接责任及连带责任。
3.如因作品内容、版权等需要同本网联系的,请在作品在本网发表之日起30日内联,否则视为放弃相关权利