코드의 악몽: 파일 전송 노트

코드의 악몽: 파일 전송

SSIS(SQL Server Integration Services)는 데이터 조작을 위한 시각적 인터페이스를 갖춘 Microsoft의 ETL 도구입니다. 이를 통해 사용자는 데이터 흐름을 설계하고 변환 및 다양한 작업을 통합할 수 있으므로 복잡한 스크립팅이 필요하지 않습니다. SSIS의 기능은 데이터 마이그레이션, 시스템 통합, Excel 스프레드시트로 추출까지 확장됩니다. 놀랍게도 SSIS는 해당 환경 내에서 .NET 코드를 쉽게 실행할 수 있습니다. 이 텍스트에서는 문제가 있는 구현인 SSIS 내의 "파일 이동" 저장 프로시저를 강조 표시합니다. 이 저장 프로시저는 SQL Server가 셸 명령을 실행할 수 있도록 하는 잠재적으로 위험한 기능인 xp_cmdshell를 활용합니다. 이 저장 프로시저는 Windows에 GNU Core Utils를 설치해야 하는 'mv' 및 'cp' 명령을 사용하여 문서화되지 않은 종속성을 생성합니다. xp_cmdshell 일반적으로 보안상의 이유로 사용하지 않도록 설정되므로 이 설정은 심각한 보안 위험을 초래합니다. 새 하드웨어로의 초기 마이그레이션으로 인해 이 접근 방식이 실패하여 한계가 강조되었습니다. SSIS 패키지에서는 이 안전하지 않은 방법 대신 더 적절한 "파일 전송 작업"을 사용해야 합니다. 이 텍스트는 패키지 관리 솔루션에 대한 광고로 끝납니다.