【发布时间】:2014-09-25 23:10:32
【问题描述】:
我尝试在 SQL Server 中启用xp_cmdshell。于是我跑了:
EXEC master.dbo.sp_configure 'show advanced options', 1
RECONFIGURE
EXEC master.dbo.sp_configure 'xp_cmdshell', 1
RECONFIGURE
返回的消息说:
配置选项“显示高级选项”从 1 更改为 1。运行 RECONFIGURE 语句进行安装。
配置选项 'xp_cmdshell' 从 0 更改为 1。运行 RECONFIGURE 语句进行安装。
构面属性显示“XPCmdShellEnabled”
但是,当我执行时
EXEC master..xp_cmdshell 'dir c:'
我收到了错误信息
消息 15281,级别 16,状态 1,过程 xp_cmdshell,第 1 行
SQL Server 阻止了对组件“xp_cmdshell”的过程“sys.xp_cmdshell”的访问,因为该组件作为该服务器安全配置的一部分被关闭。系统管理员可以使用 sp_configure 启用“xp_cmdshell”的使用。有关启用“xp_cmdshell”的详细信息,请参阅 SQL Server 联机丛书中的“表面区域配置”。
我所做的是来自 Microsoft 文档。为什么它不起作用?
【问题讨论】:
-
您使用的是什么版本的 SQL Server?看起来你做对了,我看不出它没有任何原因。
-
您好,感谢您的回复。它是 SQL Server 2008 R2。执行 xp_cmdshell 是否需要任何权限?
-
SQL Server 安全性不是我的强项,但我认为您需要
CONTROL SERVER权限。它应该默认授予 sa 和管理员。
标签: sql-server sql-server-2008-r2 xp-cmdshell