1

我创建了一个具有系统管理员访问权限的代理帐户。用户使用它来执行他们选择的 bcp 命令。

但是,当用户想要执行他们得到的过程时:对象'xp_cmdshell',数据库'mssqlsystemresource',模式'sys'的EXECUTE权限被拒绝

这是我的过程:

CREATE PROCEDURE spCMDProxy 

( 
@SQLSTATEMENT VARCHAR(1000), 
@FILENAME VARCHAR(1000) 

) 
WITH ENCRYPTION 
AS 
BEGIN 
DECLARE @PrepStatement VARCHAR(1000) 
SET @PrepStatement = 'bcp ' + '"'+ @SQLSTATEMENT + '" queryout C:\SamsungEDI\' + @FILENAME + ' -U************ -P************ -c -t"||" -S UECZAERP01' 
EXEC xp_cmdshell @PrepStatement 
END 

我的代理帐户是本地系统管理员帐户。

4

1 回答 1

1

我发现了问题,由于用户无法在 xp_cmdshell 上执行,因此无法执行:

USE master
GRANT EXECUTE on xp_cmdshell to [mydomain\myAccount]

还找到了这篇文章

于 2013-02-19T08:35:47.847 回答