데이터베이스 개발자 Tip & 강좌

SQLER의 개발자들이 만들어가는 데이터베이스 사용자 Tip & 강좌 게시판입니다. SQL서버, Oracle, MySQL 등 여러 클라우드/오픈소스 기반 데이터베이스 개발 및 운영 관련 팁과 쿼리 노하우를 이곳에서 가장 먼저 접하실 수 있습니다. 많은 도움 되시길 바랍니다.

SQL Server 2012에서 비상계정 생성하기

  • 비밀번호를 잊어 버렸을 경우 대처하기

 

  • Version : SQL Server 2012

 

 

DBA는 프로덕션(운영) 환경에서 SQL Server에서 실행되는 서비스를 유지하고 운영하는 책임이 있다. 최근 들어 보안이 중점으로 떠오르면서 불필요한 계정 삭제 및 접근을 차단, 권한 최소화, 주기적인 비밀번호 변경 등을 진행 하고 있다.

 

그런데 관리자의 실수 또는 허가 받지 않은 접근(해킹)으로 인하여 다음과 같은 상황이 발생 하였다.

  • SQL Server의 모든 기본 관리자 계정을 삭제
  • SYSADMIN 서버 역할(모든 windows 및 SQL Server 로그인 등)의 모든 사용자 계정
  • 매우 복잡한 SA 계정 비밀번호로 변경하여 추측이 어려움
  • SYSADMIN 권한이 없는 도메인 계정

 

우리는 어떤 행동을 해야 할까? 아마 대부분의 관리자는 자신의 마음속에 있는 모든 가능한 암호를 사용하여 SA 로그인을 시도 할 것이다. 만약 어딘가에 SA 비밀번호가 저장되어 있다면 매우 다행스럽지만 외부인의 소행으로 전혀 비밀번호를 알지 못한다면? 그리고 도메인 계정조차 권한이 없는 상황이라면?

 

Windows 계정이 SQL Server 2012가 서비스 중인 Windows 서버의 로컬 관리자 그룹이라면 다음과 같은 방법으로 SQL Server에 접근하여 계정을 생성할 수 있다.

 

 

[실행] – [cmd]를 입력하여 명령 프롬프트 창을 실행 한다.

 

 

 

SQL Server 서비스를 단일 사용자 모드를 사용한다. (만약 SQL Server 서비스가 실행 중이라면 서비스를 중지 한다.)

 

명령 프롬프트 창에서 다음과 같이 명령을 실행 한다.

Net stop mssqlserver

 

cd C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Binn

 

SQLServr.Exe –m (or SQLServr.exe –f)

 

 

단일 사용자 모드의 최소권한으로 SQL Server 서비스가 실행 되었다. 여기서 중요한 것은 절대 커맨드 창을 닫지 말아야 한다.

 

SQL Server 접속을 위해 새로운 명령 프롬프트 창을 실행 한다.

 

 

다음과 같이 SQLCMD 모드로 접속 하여 계정 생성 및 롤을 구성 한다.

SQLCMD –S "AG_1"

 

CREATE LOGIN SQL_TEST WITH PASSWORD = '!@#456qwer'

GO

SP_ADDSRVROLEMEMBER 'SQL_TEST', 'SYSADMIN'

GO

 

 

 

계정 생성이 완료 되었으면 현재 실행 되고 있는 모든 명령 프롬프트 창을 닫는다. 그리고 일반적인 시작 옵션으로 SQL Server 서비스를 시작 한다.

 

 

 

SSMS를 사용하여 접속 테스트를 진행 하여 보자. SSMS에서 비상계정으로 생성한 SQL_TEST 계정을 사용하여 접속하여 보자.

 

 

성공적인 접속과 함께 보안 항목에서 생성한 계정을 확인 할 수 있다. 이제 SA의 비밀번호를 재설정하고 SQL Server를 제어 할 수 있다.

 

 

DBA라면 자신이 관리하는 서비스 환경에서 위와 같은 상황이 발생하는 일은 없어야 하겠지만 만약에 위의 상황과 같은 일이 발생 한다면 침착하게 문서를 참고하여 매뉴얼 대로 할 수 있도록 하자.

 

 

[참고자료]

http://technet.microsoft.com/ko-kr/magazine/jj853293(en-us).aspx

 

 

 


강성욱 / jevida@naver.com
Microsoft SQL Server MVP
Blog : http://sqlmvp.kr
Facebook : http://facebook.com/sqlmvp

No. Subject Author Date Views
1811 CLR 사용시 CPU 사용률 증가 현상 jevida(강성욱) 2016.09.29 1763
1810 DMV를 이용한 CPU 사용량 높은 쿼리 찾기 jevida(강성욱) 2016.09.29 4452
1809 DMV를 이용한 인덱스 크기 및 조각화 정보 반환 jevida(강성욱) 2016.09.29 1158
1808 Checkpoint 추적하기 jevida(강성욱) 2016.09.29 1287
1807 중복 인덱스와 성능(Duplicate Indexes with Performance) jevida(강성욱) 2016.09.29 2299
1806 823, 824, 825, 832 오류 (DISK IO 오류) jevida(강성욱) 2016.09.29 2186
1805 DISK I/O 병목 확인 jevida(강성욱) 2016.09.29 3836
» SQL Server 2012에서 비상계정 생성하기 - 비밀번호를 잊어 버렸을 경우 대처하기 jevida(강성욱) 2016.09.29 1253
1803 SQL Server 차단 최소화 jevida(강성욱) 2016.09.29 1131
1802 자주 사용되는 System 함수 jevida(강성욱) 2016.09.29 1072
1801 프로시저와 임시테이블, 그리고 리컴파일 jevida(강성욱) 2016.09.29 2451
1800 access check cache 크기에 따른 성능 문제 jevida(강성욱) 2016.09.29 1051
1799 Hot Add CPU jevida(강성욱) 2016.09.29 851
1798 스레드 및 파이버 실행 jevida(강성욱) 2016.09.29 1018
1797 CPU에 스레드 할당 및 lightweight pooling 옵션 사용 jevida(강성욱) 2016.09.29 1731
1796 스레드 및 태스크 아키텍처 jevida(강성욱) 2016.09.29 1414
1795 메모리 관리 아키텍처 – NUMA 버퍼 풀 증가 및 축소 jevida(강성욱) 2016.09.29 1232
1794 메모리 관리 아키텍처 – NUMA 지원 방법 jevida(강성욱) 2016.09.29 1555
1793 메모리 관리 아키텍처 – NUMA(Non-Uniform Memory Access)이해 jevida(강성욱) 2016.09.29 1417
1792 메모리 관리 아키텍처 – Hot Add 메모리 jevida(강성욱) 2016.09.28 929





XE Login