MSSQL에서 파일 복사 및 삭제등 처리를 위한 외부 명령을 호출 할 수 있다.
기본적으로 "master..xp_cmdshell" 명령을 사용 하는데 "xp_cmdshell"은 MSSQL 환경설정옵션에서 비활성 되어 있다.
따라서 비활성된 "xp_cmdshell"을 활성화 해 주어야만 하는데 이 기능을 활성화 하게 되면 시스템 명령어 외부에서 연결된
사용자가 쿼리를 이용하여 중요 파일을 변경 및 삭제가 가능해 지는 심각한 보안에 문제가 생길 수 있으니
보안이 담보되지 않은 경우는 활성화를 안 하는 것이 정신 건강에 유익하다..
그렇더라도 꼭 필요한 경우
로컬에 백업된 DB백업 파일을 원격 경로에 복사(직접 UNC 방식으로 백업을 할 수 있지만 마음대로 안될때도 있다.... ㅠ.ㅠ)
할 경우에 스케쥴러에 로컬 백업 이후 다음 단계에서 백업된 파일을 강제로 복사해 줄 수 있다..
- xp_cmdshell을 활성화 하는 방법
. 전체 환경설정 값을 보면
exec sp_configure
마지막 라인에 xp_cmdshell 항목이 있는데 config_value / run_value 값이 "0" 으로 비활성 되어 있다.
. xp_cmdshell을 활성화 하려면
exec sp_configure 'xp_cmdshell', 1;
reconfigure
- xp_cmdshell을 이용하여 파일을 복사하는 예)
declare @cmdstring varchar(1000)
set @cmdstring = 'copy S:\TESTDB.BAK \\BACKUP\DB'
exec master..xp_cmdshell @cmdstring
'프로그래밍 > MSSQL' 카테고리의 다른 글
MSSQL Server/Agent실행 계정 변경 (1) | 2013.07.23 |
---|---|
서브쿼리 결과를 이용한 일괄 업데이트 쿼리 (0) | 2013.03.28 |
[MSSQL] Generate Activation Context, msmdctr90.DLL 엑세스 거부 오류 (0) | 2013.03.26 |
MSSQL 백업 - UNC 를 이용한 네트워크 스토리지 (1) | 2012.08.14 |
[MSSQL] 풀텍스트인덱스(FullText Indexing) 사용하기 샘플 (1) | 2011.12.25 |