반응형
SPN(Service Principal Name)은 서비스의 인스턴스를 고유하게 식별하는 이름입니다. Kerberos 인증 서비스는 SPN을 사용하여 서비스를 인증할 수 있습니다. 클라이언트가 서비스에 연결하려면 서비스의 인스턴스를 찾아 SPN을 구성하고, 서비스에 연결하고, 서비스를 인증하기 위해 SPN을 제시합니다.
SQL Server에서 Kerberos 인증을 사용하려면 어떻게 해야 하나요?
SQL Server에서 Kerberos 인증을 사용하려면 다음 두 가지 조건이 모두 충족되어야 합니다:
- 클라이언트와 서버 컴퓨터는 동일한 Windows 도메인이나 신뢰할 수 있는 도메인에 속해야 합니다.
- SPN은 Active Directory에 등록되어야 합니다. Active Directory는 Windows 도메인에서 키 배포 센터의 역할을 수행합니다. SPN은 등록된 후 SQL Server 인스턴스 서비스를 시작한 Windows 계정에 매핑됩니다.
SPN 등록이 수행되지 않거나 실패하면, Windows 보안 계층은 SPN과 관련된 계정을 결정할 수 없으며, Kerberos 인증이 사용되지 않습니다.
SPN은 어떤 형식으로 구성되나요?
SQL Server에 대한 SPN은 다음과 같은 형식으로 구성됩니다:
MSSQLSvc/<FQDN>:<port>
여기서,
- MSSQLSvc는 등록되는 서비스입니다.
- <FQDN>은 서버의 전체 도메인 이름입니다.
- <port>는 TCP 포트 번호입니다.
예를 들어, SQL Server의 FQDN이 SQLA.TestDomain.com이고 기본 포트 1433에서 실행되고 있다면, 기본 인스턴스에 대한 SPN은 다음과 같습니다.
MSSQLSvc/SQLA.TestDomain.com:1433
SPN은 어떻게 등록하나요?
SPN은 다음 두 가지 방법으로 등록할 수 있습니다:
- 자동 SPN 등록: 데이터베이스 엔진 서비스가 시작될 때 SPN을 등록하려고 시도합니다. 이를 위해서는 SQL Server 서비스 계정이 도메인에서 SPN을 생성하고 삭제할 수 있는 권한이 있어야 합니다.
- 수동 SPN 등록: 서버가 SPN을 자동으로 등록할 수 없는 경우, SPN은 수동으로 등록해야 합니다. 이를 위해서는 setspn 명령줄 도구를 사용하거나 Active Directory 도구를 사용할 수 있습니다.
SPN 등록
SETSPN -A MSSQLSvc/xxxxx 서비스계정 SETSPN -A MSSQLSvc/xxxxx:포트 서비스계정
SPN 해제
SETSPN -D MSSQLSvc/xxxxx 서비스계정SETSPN -D MSSQLSvc/xxxxx:포트 서비스계정
SPN 확인
SETSPN -L 서비스계정
SPN 등록이 제대로 되었는지 어떻게 확인하나요?
SPN 등록이 제대로 되었는지 확인하기 위해서는 다음과 같은 방법을 사용할 수 있습니다:
- SQL Server 오류 로그를 확인합니다. SPN 등록에 문제가 있으면 오류 메시지가 기록됩니다.
- sys.dm_exec_connections 동적 관리 뷰를 쿼리합니다. 다음 쿼리를 실행하고 auth_scheme 열의 값을 확인합니다. Kerberos가 활성화되어 있으면 KERBEROS라고 표시됩니다.
SELECT auth_scheme FROM sys.dm_exec_connections WHERE session_id = @@SPID;
- Microsoft Kerberos Configuration Manager for SQL Server 도구를 사용합니다. 이 도구는 Kerberos 관련 연결 문제를 진단하는 도구입니다.
오류 발생 시 상황
반응형
'MSSQL' 카테고리의 다른 글
MSSQL : 백업 진행율 확인하기 (1) | 2024.01.22 |
---|---|
MSSQL : Linked Server 설정하기 (0) | 2024.01.17 |
MSSQL : SQL 2012에서 2016으로 업그레이드 (1) | 2023.11.29 |
MSSQL : 쿼리 옵션에 따라 달라지는 실행 계획 (0) | 2023.11.29 |
MSSQL : 등록된 서버 Registered Servers (1) | 2023.11.28 |