2012-10-09 29 views
1

作为概念证明,我们试图在现有解决方案中插入xp_cmdshell命令。目前的应用程序调用存储过程我们的数据库服务器上异形的模样,当:从存储过程调用xp_cmdshell

declare @P1 int 
    set @P1=1 
    exec Name_Of_The_SP @param1 = 3, @param2 = 'blah', @parametc = 'blahetc', @ID = P1 output 
    select @P1 

的SP基本上打开了一个交易,插入一行,然后提交。这里面我们说:

exec master..xp_cmdshell 'dir > c:\test.txt' 

当我们再运行的一个代码块中按预期在服务器上生成该文件的SSMS查询窗口。但是当我们使用应用程序来调用它时,这些行就像正常一样插入,但是文件不会被生成?

SQL Server和SQLAgent用户是本地管理员和系统管理员,因此看不到任何问题。试图让应用程序用户成为本地管理员也无济于事,它已经是一个系统管理员。

这是SQL Server 2000中

+3

为了避免错误迁徙的选民,我不认为他们会很欣赏这个问题,因为它并不是真正关于“以专业的身份管理计算机系统”,因为他们在常见问题解答中有这些问题。 – dsolimano

+0

你在SQL 2000中有'sp_xp_cmdshell_proxy_account'吗? – podiluska

+0

Podiluska,我希望作为高手下的扩展程序吗?如果是这样,它不存在。使用企业管理器我确实确定了一个代理,将其作为系统管理员和本地管理员(纯粹作为测试),并且仍以问题中概述的方式执行。 – Paul

回答

-1

我们设法弄清楚这一点 - 我们(我)在探查了EXEC是根据不同的登录进来了俯瞰。授予对master.dbo.xp_cmdshell的执行权限特别有效。向任何花时间/精力的人道歉!