2012-04-12 3 views
1

에서 호출 할 때 전용 :dtexec를 실행에 시간 제한 다음 문제는 잠시 동안 나를 귀찮게 된 저장 프로 시저

좀 인터페이싱을 처리하기위한 dtsx 패키지가 있습니다.

SET @v_statement = 'DTEXEC /FILE "' + @v_if_ssis_package + '" /SET \Package.Variables[User::message_number].Properties[Value];' + CAST(@i_message_number AS VARCHAR(20)) 
       + ' /ConfigFile "' + REPLACE(@v_if_ssis_package, '.dtsx', '.xml') + '"' 

EXECUTE AS USER = 'shell'; 

INSERT INTO #SSISResult 
EXEC @v_ssis_returncode = xp_cmdshell @v_statement; 

쉘 사용자는, 지금까지의 내가 아는 한에 대한 장소에서 모든 호출을 xp_cmdshell을 실행할 수 있도록했습니다 아래와 같이 내가 저장 프로 시저를 호출합니다. 여기

Microsoft (R) SQL Server Execute Package Utility Version 10.50.1600.1 for 32-bit Copyright (C) Microsoft Corporation 2010. All rights reserved. Started: 10:12:28 Error: 2012-04-12 10:12:59.11 Code: 0x00000000 Source: Script Task Script Description: Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding...

는 (아래와 같이) 나는 독립 실행 형 쿼리와 똑같은 일을 실행한다면 .. 이것에 대해 보채 된 일이 그것을 내 저장 프로 시저를 실행하는 동안 그럼에도 불구하고 나는 오류를 다음과 부딪 잘 실행됩니다. 여기에 무슨 일이 벌어 질지에 대한 아이디어가 있습니까?

EXECUTE AS USER = 'shell'; 
EXEC xp_cmdshell 'dtexec /FILE "C:\mypackage.dtsx" /SET \Package.Variables[User::message_number].Properties[Value];48644 /ConfigFile "C:\mypackage.xml"' 

이 문제에 대한 조언을 해 줄 수있는 분들께 감사드립니다.

답변

0

아마 권한 오류

빠른 추측 :

실행 GRANT EXECUTE ON xp_cmdshell TO shell

대신

+0

이 사용자에 대한 작동하지 않는 것 로그인으로 실행 사용자의 어쩌면 EXECUTE AS login = 'shell'하지만, 내가 현재 사용자로 실행을 사용하고 있습니다. 셸 사용자는 이미 xp_cmdshell을 실행할 권한이 있습니다. – Jens

+0

로그인 수준에서 작동해야한다고 생각합니다. 너 그거 해줄 수있어? 어쩌면 사용자 쉘이 다른 이름의 로그인으로 매핑됩니다. – Diego

+0

쉘 사용자와 함께 SQL 서버에 로그인하고 쿼리를 다시 실행했습니다. 그것은 예상대로 달렸다. 스토어드 프로 시저를 호출하면 여전히 제한 시간이 남아 있습니다 .. – Jens