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

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

Windows Server 2012 R2 그룹 관리 서비스 계정 및 SQL 서버

 

  • Version : SQL Server 2005, 2008, 2008R2, 2012
  • Windows Server 2012 R2

 

SQL Server 계정을 변경할 때 서비스 다운타임이 고민된다면 Windows Server 2012 R2의 그룹 관리 서비스 계정을 사용하면 어떨까?

 

이번 포스트는 SQL Server Premier Field Engineer Blog에 게시된 내용으로 필자가 읽고 이해한 내용을 정리하였으며 번역의 오류나 기술적 오류가 있음을 미리 알려둔다. 자세한 내용은 원문을 참고 하길 바란다.

 

윈도우 서버 2008R2에 도입된 독립 관리 서비스 계정은 도메인 계정을 관리하고 자동 암호 관리 및 간소화된 SPN 관리, 관리가 권한 위임 등을 포함한다.

 

도메인 관리 서비스 계정은 그룹 관리 서비스 계정 또는 gMSA의 동일한 기능을 제공하고 여러 서버에 기능을 확장 한다. gMSA는 하나의 서비스 계정에 서버 그룹을 연결 할 수 있다. 본질적으로 gMSA는 MSA와 다르다. MSA는 하나의 도메인 서버에 사용될 수 있다.

 

gMSA는 다중 SQL Server 인스턴스, SQL Server AlwaysOn 다중 노드 그리고 SQL Server서비스가 요구하는 도메인 계정을 필요로하는 곳에 사용된다.

 

서비스 계정 관리 그룹이 서비스 주체로 사용하는 경우 Windows 운영 체제 대신 암호를 관리하는 관리자에 의존하는 계정의 암호를 관리한다. 이것은 더 이상 암호 관리, 다운 타임 최소화 및 SQL 환경에 대한 총 소유 비용을 의미한다.

 

윈도우 서버 2012 그룹 관리 서비스 계정을 사용하는 두 노드의 SQL Server AlwaysOn 데이터베이스 가용성 그룹을 적용하는 단계를 알아보자.

 

[gMSA에 대한 요구 사항]

  • 적어도 하나 이상의 도메인 컨트롤러 필요
  • Active Directory의 파워쉘 모듈 포함하는 AD 도메인 컨트롤러
  • Windows Server 2012 R2 호스트에서 gMSA 서비스 실행

 

 

[gMSA를 만들 때 네 가지 기본 단계]

  • AD 도메인 컨트롤러에 KDS 루트키 만들기
  • 컴퓨터 그룹을 만들고 컴퓨터 개체를 추가
  • 그룹 관리 서비스 계정 만들기
  • gMSA를 사용하도록 호스트 구성

 

 

[SQL Server AlwaysOn 에서 gMSA 사용하기]

Windows Server 2012 R2 AD 도메인 컨트롤러 와 윈도우 클러스터에 가입한 두 개의 Windows Server 2012 R2 노드가 있다. 각 클러스터 노드에 독립 SQL 서버 인스턴스를 설치하기 위해 계획하고 그룹 관리자 서비스를 사용하여 각 인스턴스에 대한 암호를 관리할 필요가 없어졌다.

 

Active Directory 도메인 컨트롤러에 AD의 파워쉘 모듈을 가져 오려면 다음 명령을 실행 한다.

 

 

AD에서 도메인 컨트롤러 KDS 루트키를 만들려면 다음 명령을 실행 한다.

 

 

AD에서 도메인 컨트롤러 SQLSVC라는 도메인 서비스 계정을 만들려면 다음 명령을 실행 한다.

 

 

위의 명령을 실행 한 후 AD에서 관리 서비스 계정 컨테이너의 표준 권한이 낮은 도메인 계정을 볼 수 있다. 참고적으로 서비스 계정 암호는 기본적으로 240자 임의의 암호로 작성한다.

 

컴퓨터 그룹에서 클러스터 노드를 추가한다.

 

AlwaysOn MSA 그룹섭에서 사용하기 위해 gMSA를 구성한다. 다음 파워쉘 명령을 실행 한다.

 

 

SQL 서버를 설치할 때 SQLSVC 계정을 사용하도록 설정하였다. 단순히 AD 서비스 계정 이름 끝에 $를 추가하여 서비스 계정과 암호관리가 자동으로 이루어 진다.

 

구성원을 추가

Set-ADServiceAccount [-Name] SQLsvc-PrincipalsAllowedToRetrieveManagedPassword Host1 Host2 Host3

 

구성원 제거

Remove-ADPrincipalGroupMembership -Identity "SQLsvc" -MemberOf "AlwaysOn_MSA"

 

그룹 관리 서비스 계정 제거

 

 

SQL Server가 시작 될 때 호스트 이름 대신 SQL Server 서비스 계정(SQLSVC)로 사용되는 것을 알 수 있다.

 

SQL Server가 gMSA로 시작하도록 설정하면 계정이 자신의 SPN을 등록하는데 필요한 권한을 갖게 된다. 그러나 도메인 기능 수준이 최소 Windows Server 2012 이상이어야 한다. 다른 경우에는 수동으로 SPN을 등록하거나 서비스 계정에 대한 쓰기 SPN 권한을 부여할 필요가 있다.

 

 

[참고자료]

http://blogs.msdn.com/b/sql_pfe_blog/archive/2013/11/15/windows-server-2012-r2-group-managed-service-accounts-and-sql-server-2014-ctp2.aspx

 



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

No. Subject Author Date Views
1890 장기 트랜잭션 확인 및 경고 설정 jevida(강성욱) 2016.10.11 1416
1889 SQL 데이터 수집툴 DiagManager 사용법 jevida(강성욱) 2016.10.11 1317
» Windows Server 2012 R2 그룹 관리 서비스 계정 및 SQL 서버 jevida(강성욱) 2016.10.11 1833
1887 Kerbros 구성 관리자 툴 jevida(강성욱) 2016.10.11 1160
1886 SQL Server Geography 및 Geometory 데이터 형식 jevida(강성욱) 2016.10.11 2316
1885 SQL Server를 이용한 신용카드 보안 -조직이 PCI DSS 준수를 달성 하기 위한 요건 jevida(강성욱) 2016.10.11 1361
1884 TDE 암호화 사용하기 jevida(강성욱) 2016.10.11 3184
1883 SQL Server 암호화 하기 jevida(강성욱) 2016.10.11 2687
1882 의도하지 않은 분산트랜잭션 사용 jevida(강성욱) 2016.10.11 872
1881 Affinity I/O Mask jevida(강성욱) 2016.10.11 1159
1880 LPE_BATCH 스핀락 jevida(강성욱) 2016.10.11 880
1879 SQL Server 17953 오류 jevida(강성욱) 2016.10.11 973
1878 SQL 연결 18056 오류 jevida(강성욱) 2016.10.11 1359
1877 SQL 2008 R2 Sp1 적용과 9013 오류 - 포맷 섹터 크기에 따른 오류 jevida(강성욱) 2016.10.11 1742
1876 JDBC 로깅 파일 위치 설정 jevida(강성욱) 2016.10.11 956
1875 NUMA Node 메모리 블록 jevida(강성욱) 2016.10.11 1046
1874 AppDomain unloading 오류 로그 – CLR 오류 jevida(강성욱) 2016.10.11 1187
1873 SQL Server IO and Latch 설명 jevida(강성욱) 2016.10.11 3068
1872 마지막 백업 시간 및 DBCC 확인 [1] jevida(강성욱) 2016.10.08 1589
1871 DMV를 활용한 CPU 트러블슈팅 - Sys.dm_exec_query_stats, sys.dm_os_ring_buffers 활용 [1] jevida(강성욱) 2016.10.08 1906





XE Login