none
SQL Server 2008 R2 - xp_cmdshell RRS feed

  • 질문

  • xp_cmdshell을 사용하여 ftp script를 만들며 실행을 하는데, 서버를 부팅하여 자동으로 SQL Server를 시작하면 xp_cmdshell에서 오류가 발생하며 네트워크 연결이 자동으로 끊어집니다.

    서비스를 다시 수동으로 재시작을 하면 이상 없이 실행 합니다. -> 이 부분이 이해가 되질 않습니다.

    혹시 자동으로 시작했을 때와 아닐 때에 무슨 차이가 있을까요?

    dump 파일 내용 중, 아래와 같은 부분이 있습니다.

    SqlDumpExceptionHandler: Process 57 generated fatal exception c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server is
    terminating this process.                                                                                       
    * *******************************************************************************                               
    *                                                                                                               
    * BEGIN STACK DUMP:                                                                                             
    *   10/02/12 09:39:40 spid 57                                                                                   
    *                                                                                                               
    *                                                                                                               
    *   Exception Address = 0000000000000000 Module(UNKNOWN+0000000000000000)                                       
    *   Exception Code    = c0000005 EXCEPTION_ACCESS_VIOLATION                                                     
    *   Access Violation occurred writing address 0000000000000000                                                  
    * Input Buffer 100 bytes -                                                                                      
    *             exec master.dbo.xp_cmdshell 'echo user'   

    2012년 10월 4일 목요일 오전 6:48

답변

  • 이 현상은 SQL Server 서비스 계정이 xp_cmdshell에 대한 적절한 실행 권한이 제한되어 나타나는 것으로 생각됩니다.

    해결 방법은 프록시 계정을 생성하여 작업을 하거나 SQL Sever 서비스 계정을 권한 있는 Windows 그룹에 추가 하면 해결 될 것으로 보입니다.

    하지만 그보다는 xp_cmdshell  기능은 위험한 기능으로 FTP 를 사용하실 경우 SSIS 나 .NET 프로그래밍에서 접근하시는게 더 나을 것 같습니다.


    Hong-ju


    2012년 10월 4일 목요일 오후 11:52