xp_cmdshell访问被拒绝 - 在Windows 8上安装了2012 Dev Edition

时间:2014-01-18 15:49:49

标签: sql-server sql-server-2012 windows-8.1

编辑:

我通过进入计算机管理并更改SQL服务的登录以使用本地帐户来实现它。


我的Windows 8.1笔记本电脑上安装了SQL Server 2012 Developer Edition(带SP1)的副本。我专门创建了一个文件夹来测试一些使用存储过程导入/导出的文件。位置是:C:\ SQL

当我跑步时

exec xp_cmdshell 'dir c:\sql'

返回文件夹内容。我跑的时候

exec xp_cmdshell 'dir c:\sql > dir c:\sql\dir.txt'

它返回Access被拒绝

所以我环顾四周,看到了这个

EXEC xp_cmdshell 'osql -E -Q"select suser_sname()"'

并将MSSQLSERVER添加到用户组,并专门拥有对C:\ SQL的完全访问权。

有没有人有进一步的建议?

由于

1 个答案:

答案 0 :(得分:1)

是的,您运行SQL的帐户必须占用C:\ SQL目录。

但是,您的问题是语法错误。额外的'dir'命令。试试这个纠正过的。

-- pipe output to dir.txt
exec xp_cmdshell 'dir c:\sql > c:\sql\dir.txt'

在我的SQL Server 2012 Developer上,它返回null作为值。但目录列表存在。为了执行,我改为c:\ temp。

enter image description here