执行 xp_cmdshell 失败

SKERID 2007-11-30 08:54:15
exec xp_cmdshell 'del d:\a.txt'

报错:
消息 50001,级别 1,状态 50001
由于 CreateProcessAsUserW 返回错误 1314,执行 xp_cmdshell 失败。请确保运行 SQL Server 的服务帐户具有适当的特权。有关详细信息,请在联机丛书中搜索与 xp_sqlagent_proxy_account 相关的主题。

我使用的代理帐户在操作系统中属于超级用户组
...全文
248 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
SKERID 2007-11-30
  • 打赏
  • 举报
回复
代理帐户属于SYSADMIN,我估计是操作系统权限问题
SKERID 2007-11-30
  • 打赏
  • 举报
回复
如何加权限?
fa_ge 2007-11-30
  • 打赏
  • 举报
回复
自己打开管理器,给自己加权限
ojuju10 2007-11-30
  • 打赏
  • 举报
回复

我也试了,随便在那个库,都可以运行

exec xp_cmdshell 'del e:\2007.xls'

楼主是没有权限,建议赋权或者用sa登录
fa_ge 2007-11-30
  • 打赏
  • 举报
回复
看来是你权限不足导制的
SKERID 2007-11-30
  • 打赏
  • 举报
回复
我用的不是SA登录,一个权限非常低的账户(只有数据表读写权限和存贮过程执行权限),但又需要执行xp_cmdshell 所以采用了代理帐户
SQLSERVER的两个服务(SQLSERVER和SQLSERVERAGENT也是代理帐户启动的)
-狙击手- 2007-11-30
  • 打赏
  • 举报
回复
九天,真快
fa_ge 2007-11-30
  • 打赏
  • 举报
回复
--写个动态的给你


declare @filename varchar(100),@s varchar(100)
set @filename='e:\mrp.xls'
set @s='master..xp_cmdshell ''del '+@filename+' '' '
exec (@s)

/*
output
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
NULL

(所影响的行数为 1 行)
*/






-狙击手- 2007-11-30
  • 打赏
  • 举报
回复
默认情况下,只有 sysadmin 固定服务器角色的成员才能执行此扩展存储过程
-狙击手- 2007-11-30
  • 打赏
  • 举报
回复
exec master..xp_cmdshell 'del e:\2007.xls'

另外,你当前用户是否有权限呀
fa_ge 2007-11-30
  • 打赏
  • 举报
回复

--如
exec master..xp_cmdshell 'del e:\2007.xls'



--楼主忘了master,我测试了可以的
fa_ge 2007-11-30
  • 打赏
  • 举报
回复

exec master..xp_cmdshell 'del d:\a.txt'

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧