독까의 이야기

# MSSQL 버전 업그레이드 테스트



1. 기존 MSSQL 2014 를 MSSQL 2017 로 업그레이드 테스트

현재 버전 : Microsoft SQL Server 2014 (SP1-GDR) (KB4019091) - 12.0.4237.0 (X64) 

 

2. MSSQL 2017 iso 파일 삽입 후 setup.exe 실행 

 

3. 이전 버전의 SQL Server 에서 업그레이드 선택 후 순차 진행.

업그레이드 진행 중에는 SQL 및 에이전트 서비스가 중지되었다가 재실행 되므로, 실제 운영 중인 DB 서버에서 진행시 외부 연결 차단 후 진행을 권장. 

 

4. 상위 버전의 SSMS 설치 


설치 된 SQL 버전보다 낮은 버전의 SSMS 로 작업시 오류 발생함. 
참고 : https://gunnm.tistory.com/40

 

SQL 2014 로 DB 이전 후 테이블 행 편집시 나오는 에러 문구

웹호스팅 서비스 이전을 진행하면서 DB 접속 시 발생하는 에러 확인 신규 서버에 설치 된 SQL 의 버전은 MS-SQL 2014 1. 2005 SSMS 에서 접속 2005 SSMS 에서는 MS-SQL 2008 이상에 접속 불가 2. 2008 SSMS 에서 접

gunnm.tistory.com

 

5. DB 버전 및 데이타 확인 

변경 된 버전 : Microsoft SQL Server 2017 (RTM) - 14.0.1000.169 (X64)

 

특정 고객사를 대상으로 침해 피해 발생. 

윈도우 구버전에서 사용되는 SAM 잠금 도구 (Syskey) 를 이용한 시스템 잠금. (ko.wikipedia.org/wiki/SAM_%EC%9E%A0%EA%B8%88_%EB%8F%84%EA%B5%AC)

고객사 관리자 계정 패스워드가 노출되어 원격 접속이 가능하게 된 상태에서 syskey 로  잠금 추정.

C:\Windows\System32\config\RegBack 폴더에 기존 레지스트리 정보 파일이 있을 경우에는 복구 가능. 

 

1. Windows 설치 CD 를 이용하여 부팅.

복구 모드 진입 후 문제 해결 선택.

고급 옵션 - 명령 프롬프트 선택

 

2. CMD 에서 레지스트리 파일 복사

copy c:\windows\system32\config\regback c:\windows\system32\config

복사 완료되었으면 리부팅으로 복구 작업 완료 됨. 

# 1

신규 고객사의 서버를 세팅하던 중, 로컬 보안 정책 일부 수정을 위해 프로그램을 실행했다.

시작 - secpol.msc - 로컬 정책 - 보안 옵션 을 클릭했는데, 아래와 같은 오류 창이 호출 됐다.


신규 설치 된 서버 2대 와 테스트용으로 사용하는 서버에서 동일 증상이 확인 됐다. 

해당 장비들의 OS 는 Windows Server 2016 STD 이다. 



# 2

오류가 발생 된 서버들의 wsecedit.dll 파일을 확인해 본다. 

C:\Windows\System32\wsecedit.dll

파일의 수정 날짜가 2020.09.02 로 확인 된다. 

2020년 9월 보안 업데이트 후 파일이 변경 된 것으로 확인되었다. 


9월 보안 업데이트를 진행하지 않은 서버에서 보안 옵션 호출 및 파일 수정 날짜를 확인 한다.


보안 옵션 호출 정상이며, 파일 수정 날짜는 2020.04.08 로 확인된다. 



# 3

이전 버전의 wsecedit.dll 파일로 교체를 진행한다. 

보안 옵션 호출이 정상 실행되는 서버에서 wsecedit.dll 을 복사해서 임의 경로에 저장한다. 

여기서 두 가지 방법으로 파일 교체가 가능하다.

1) 서버 전원 종료 후 복구 모드 진입해서 CMD 에서 파일 덮어쓰기

2) wsecedit.dll 파일 사용자 권한 변경 후 삭제 / 이전 버전 파일 복사


1) 의 경우 전원 종료가 불가피하므로 지양한다. 따라서 2) 의 방식으로 해결 한다. 


일반적으로 system32 폴더 안의 파일들은 권한 문제로 삭제 및 덮어쓰기가 불가하다. 



CMD 실행 후 아래의 작업을 순차 진행한다. 


wsecedit.dll 파일의 소유권을 가져온다.

takeown /f C:\Windows\System32\wsecedit.dll 


사용자 계정에 권한을 부여한다.

cacls C:\Windows\System32\wsecedit.dll /G 사용자계정:F 


wsecedit.dll 파일을 삭제하고, 이전 버전의 파일로 대체한다.

del C:\Windows\System32\wsecedit.dll 

copy c:\wsecedit.dll c:\Windows\System32\


대체 된 파일의 수정 일자를 확인한다.

 dir -filename wsecedit.dll


이전 버전 파일로 대체 후 보안 옵션 호출 정상 확인 되었다. 



# 4

해당 오류가 Windows Server 2016 버전에 한해서 발생되는 문제인지는 명백히 확인이 되지 않았으나, 

9월 보안 업데이트를 진행한 Windows Server 2012 R2 서버에서 확인 된 wsecedit.dll 파일의 수정 일자는 2020.08.04 이다. 


보안 옵션 호출도 정상 실행된다. 



# 5

Windows Server 2016 OS 가 설치 된 서버는 2020년 9월 보안 업데이트는 넘어가는게 좋겠다. 

동일 커널을 사용하는 2019 에서도 문제가 발생할 것 같긴한데 위험을 감수하고 테스트 하고 싶지는 않다. 

MS 에서 빨리 해당 문제를 확인하고 패치를 진행해야 할텐데.