DB 관련

[MSSql] xp_cmdshell 사용 설정

DevReff 2024. 12. 27. 08:19




728x90
반응형

MS-SQL Server 에서 xp_cmdshell 을 사용하고 싶을때는 

 
SELECT * FROM sys.configurations WHERE name = 'xp_cmdshell'
 
을 사용하여 xp_cmdshell 항목의 value 값을 체크한다.
value 값이 0으로 되어 있을 경우 이것을 1로 변경하면 사용이 가능하다.

sys.configurations 값을 변경할 때는 sp_configure 라는 시스템 저장프로시저를
이용하여 값을 변경한다.
 
EXEC sp_configure 'show advanced options', 1
go
RECONFIGURE
go
EXEC sp_configure 'xp_cmdshell', 1
go
RECONFIGURE
go
 
위와 같이 변경하면 사용이 가능하다.
 
간혹, 위 스크립트 실행시 다음과 같은 에러가 출력된다면
 
'시스템 카탈로그에 대한 임의 업데이트는 지원되지 않습니다.'
 
이 문제는 sp_configure 저장 프로시저의 업데이트 허용 매개 변수가 1로 설정된 경우 발생한다. 이 문제를 해결하려면 업데이트 허용 매개 변수를 0으로 설정한다.
 
SELECT * FROM sys.configurations  WHERE name = 'allow updates'
 
allow updates 의 설정값이 1로 되어있을 경우 아래의 스크립트를 실행하여 0으로 변경한다.
 
EXEC sp_configure 'allow updates', '0'
go
RECONFIGURE WITH OVERRIDE
go
 
위와 같이 실행 후 다시 sp_configure 값을 변경하면 된다.
 
출처: https://devdb.tistory.com/17 [DB 관련:티스토리]