2011-12-14 55 views
1

我正在获取对象'xp_cmdshell'上的执行权限被拒绝。权限在对象上被拒绝xp_cmdshell

这里的情况,我有一个名为导出文件的存储过程。 我从一个虚拟PC .. Web应用程序这个命令我得到允许误差的执行过程中调用通过SqlCommand的存储过程

然后我通过SQL事件探查器进行调试和剖析的执行结果查询窗口(这意味着我运行StoredProcedure与必要的参数基于从探查器到查询窗口),令人惊讶的是它的工作很好。该文件已成功导出。

我想知道这是什么错误,考虑到我在连接字符串中的登录名是拥有者和管理员用户。

回答

3

与Web服务器一起使用的SQL用户帐户无权使用该扩展过程。您必须提升该用户的权限(坏主意),或者在SQL安全性中分配一个代理帐户,该代理帐户可以在服务器内执行该过程,而无需将该Web帐户设为系统管理员。

+0

谢谢!我解决了它。 这是你的意思? EXEC sp_xp_cmdshell_proxy_account [domain \ user],[password]; EXEC sp_grantdbaccess [sql account user] GRANT exec ON sys.xp_cmdshell TO [sql account user] –

1

我们必须给该用户的执行权限

语法:

GRANT EXECUTE ON xp_cmdshell TO [Domain\User] 

注意:请确保您使用的必须是在你给执行权限登录。我发现用户多次使用diff ID和抱怨。