执行 xp_cmdshell 失败

时间:2021-10-20 19:22:13
exec xp_cmdshell 'del d:\a.txt'

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

我使用的代理帐户在操作系统中属于超级用户组

12 个解决方案

#1



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

#2



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



--楼主忘了master,我测试了可以的

#3


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

另外,你当前用户是否有权限呀

#4


默认情况下,只有 sysadmin 固定服务器角色的成员才能执行此扩展存储过程

#5


--写个动态的给你


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

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

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






#6


九天,真快

#7


我用的不是SA登录,一个权限非常低的账户(只有数据表读写权限和存贮过程执行权限),但又需要执行xp_cmdshell 所以采用了代理帐户
SQLSERVER的两个服务(SQLSERVER和SQLSERVERAGENT也是代理帐户启动的)

#8


看来是你权限不足导制的

#9



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

exec  xp_cmdshell   'del   e:\2007.xls' 

楼主是没有权限,建议赋权或者用sa登录

#10


自己打开管理器,给自己加权限

#11


如何加权限?

#12


代理帐户属于SYSADMIN,我估计是操作系统权限问题

#1



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

#2



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



--楼主忘了master,我测试了可以的

#3


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

另外,你当前用户是否有权限呀

#4


默认情况下,只有 sysadmin 固定服务器角色的成员才能执行此扩展存储过程

#5


--写个动态的给你


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

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

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






#6


九天,真快

#7


我用的不是SA登录,一个权限非常低的账户(只有数据表读写权限和存贮过程执行权限),但又需要执行xp_cmdshell 所以采用了代理帐户
SQLSERVER的两个服务(SQLSERVER和SQLSERVERAGENT也是代理帐户启动的)

#8


看来是你权限不足导制的

#9



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

exec  xp_cmdshell   'del   e:\2007.xls' 

楼主是没有权限,建议赋权或者用sa登录

#10


自己打开管理器,给自己加权限

#11


如何加权限?

#12


代理帐户属于SYSADMIN,我估计是操作系统权限问题