Windows 인증에 대한 데이터베이스 미러링 엔드포인트 만들기(Transact-SQL)
적용 대상: SQL Server
이 항목에서는 Transact-SQL을 사용하여 SQL Server에서 Windows 인증을 사용하는 데이터베이스 미러링 엔드포인트를 만드는 방법을 설명합니다. 데이터베이스 미러링 또는 Always On 가용성 그룹을 지원하려면 각 SQL Server 인스턴스에 데이터베이스 미러링 엔드포인트가 필요합니다. 서버 인스턴스는 하나의 포트가 있는 데이터베이스 미러링 엔드포인트를 하나만 가질 수 있습니다. 데이터베이스 미러링 엔드포인트는 엔드포인트가 생성될 때 로컬 시스템에서 사용 가능한 모든 포트를 사용할 수 있습니다. 서버 인스턴스의 모든 데이터베이스 미러링 세션이 이 포트에서 수신하고 데이터베이스 미러링에 대해 들어오는 모든 연결에 이 포트가 사용됩니다.
중요
데이터베이스 미러링 엔드포인트가 있고 이미 사용 중인 경우 해당 엔드포인트를 사용하는 것이 좋습니다. 사용 중인 엔드포인트를 삭제하면 기존 세션이 중단됩니다.
항목 내용
시작하기 전에: 보안
데이터베이스 미러링 엔드포인트를 만들려면: Transact-SQL
시작하기 전에
보안
서버 인스턴스의 인증 및 암호화 방법은 시스템 관리자가 설정합니다.
경고
RC4 알고리즘은 더 이상 사용되지 않습니다. 이 기능은 이후 SQL Server의 제거됩니다. 새 개발 작업에서는 이 기능을 사용하지 않도록 하고, 현재 이 기능을 사용하는 애플리케이션은 수정하세요. AES를 사용하는 것이 좋습니다.
사용 권한
CREATE ENDPOINT
권한 또는 sysadmin
고정 서버 역할의 멤버 자격이 필요합니다. 자세한 내용은 GRANT 엔드포인트 사용 권한(Transact-SQL)을 참조하세요.
Transact-SQL 사용
Windows 인증을 사용하는 데이터베이스 미러링 엔드포인트를 만들려면
데이터베이스 미러링 엔드포인트를 만들 SQL Server 인스턴스에 연결합니다.
표준 도구 모음에서 새 쿼리를 클릭합니다.
다음 문을 사용하여 데이터베이스 미러링 엔드포인트가 이미 존재하는지 확인합니다.
SELECT name, role_desc, state_desc FROM sys.database_mirroring_endpoints;
중요
서버 인스턴스에 대한 데이터베이스 미러링 엔드포인트가 이미 존재하는 경우 서버 인스턴스에서 설정한 다른 세션에 대한 엔드포인트를 사용하세요.
Transact-SQL을 사용하여 Windows 인증에 사용할 엔드포인트를 만들려면
CREATE ENDPOINT
문을 사용합니다. 이 문은 일반적으로 다음과 같은 형식으로 되어 있습니다.CREATE ENDPOINT *\<endpointName>* STATE=STARTED AS TCP ( LISTENER_PORT = *\<listenerPortList>* ) FOR DATABASE_MIRRORING ( [ AUTHENTICATION = **WINDOWS** [ *\<authorizationMethod>* ] ] [ [**,**] ENCRYPTION = **REQUIRED** [ ALGORITHM { *\<algorithm>* } ] ] [**,**] ROLE = *\<role>* )
위치:
<endpointName>은 서버 인스턴스의 데이터베이스 미러링 엔드포인트에 대한 고유 이름입니다.
STARTED는 엔드포인트가 시작되어 연결에 대한 수신을 시작하도록 지정합니다. 데이터베이스 미러링 엔드포인트는 일반적으로 STARTED 상태로 생성됩니다. STOPPED 상태(기본값)나 DISABLED 상태로 세션을 시작할 수도 있습니다.
<listenerPortList>는 서버에서 데이터베이스 미러링 메시지를 수신할 하나의 포트 번호(nnnn)입니다. TCP만 허용되기 때문에 다른 프로토콜을 지정하면 오류가 발생합니다.
하나의 포트 번호는 컴퓨터 시스템당 한 번만 사용할 수 있습니다. 데이터베이스 미러링 엔드포인트는 엔드포인트가 생성될 때 로컬 시스템에서 사용 가능한 모든 포트를 사용할 수 있습니다. 시스템의 TCP 엔드포인트에서 현재 사용 중인 포트를 식별하려면 다음 Transact-SQL 문을 사용합니다.
SELECT name, port FROM sys.tcp_endpoints;
중요
각 서버 인스턴스에는 하나의 고유 수신기 포트만 필요합니다.
엔드포인트에서 연결을 인증하는 데 NTLM이나 Kerberos만을 사용하려는 경우가 아니라면 Windows 인증에서 AUTHENTICATION 옵션은 선택 사항입니다. <authorizationMethod>는 연결을 인증하는 데 사용되는 방법을 NTLM, KERBEROS 또는 NEGOTIATE 중 하나로 지정합니다. 기본값인 NEGOTIATE를 적용하면 엔드포인트가 Windows 협상 프로토콜을 사용하여 NTLM이나 Kerberos를 선택합니다. 협상을 사용하면 반대쪽 엔드포인트의 인증 수준에 따라 인증을 사용하여 연결을 설정하거나 인증을 사용하지 않고 연결을 설정할 수 있습니다.
참고
AG(가용성 그룹) 엔드포인트 간의 통신에 Kerberos 인증을 사용하려면 AG에서 사용하는 데이터베이스 미러링 엔드포인트에 대해 Kerberos 연결을 위한 서비스 주체 이름을 등록합니다.
ENCRYPTION은 기본적으로 REQUIRED로 설정되어 있으며 이는 엔드포인트에 대한 모든 연결에 암호화를 사용해야 함을 의미합니다. 그러나 다음과 같이 엔드포인트에 대해 암호화를 해제하거나 선택적으로 사용할 수 있습니다. 대체 방법은 다음과 같습니다.
값 정의 DISABLED 연결을 통해 전송되는 데이터를 암호화하지 않도록 지정합니다. SUPPORTED 반대쪽 엔드포인트가 SUPPORTED나 REQUIRED로 지정된 경우에만 데이터를 암호화하도록 지정합니다. REQUIRED 연결을 통해 전송되는 데이터를 반드시 암호화하도록 지정합니다. 한 엔드포인트에 암호화가 필요한 경우 다른 엔드포인트의 ENCRYPTION은 SUPPORTED나 REQUIRED로 설정해야 합니다.
<알고리즘>은 엔드포인트의 암호화 표준을 지정하는 옵션을 제공합니다. <알고리즘> 값은 RC4, AES, AES RC4 또는 RC4 AES 중 하나이거나 이러한 알고리즘의 조합일 수 있습니다.
데이터베이스 미러링 엔드포인트에 대한 AES 알고리즘은 128비트 키 길이를 사용합니다.
AES RC4는 엔드포인트가 AES 알고리즘에 우선 순위를 두어 암호화 알고리즘을 협상하도록 지정합니다. RC4 AES는 엔드포인트가 RC4 알고리즘에 우선 순위를 두어 암호화 알고리즘을 협상하도록 지정합니다. 양쪽 엔드포인트가 두 알고리즘을 모두 지정하지만 순서가 다른 경우 연결을 수락하는 엔드포인트의 알고리즘이 적용됩니다. 동일한 알고리즘을 명시적으로 제공하여 서로 다른 서버 간의 연결 오류를 방지합니다.
경고
RC4 알고리즘은 더 이상 사용되지 않습니다. 이 기능은 이후 SQL Server의 제거됩니다. 새 개발 작업에서는 이 기능을 사용하지 않도록 하고, 현재 이 기능을 사용하는 애플리케이션은 수정하세요. AES를 사용하는 것이 좋습니다.
<역할>은 서버에서 수행할 수 있는 역할을 정의합니다. ROLE은 반드시 지정해야 합니다. 그러나 엔드포인트의 역할은 데이터베이스 미러링과만 관련이 있습니다. Always On 가용성 그룹의 경우 엔드포인트의 역할은 무시됩니다.
서버 인스턴스가 데이터베이스 미러링 세션에 따라 각기 다른 역할을 하도록 하려면 ROLE=ALL을 지정합니다. 서버 인스턴스를 파트너 또는 미러링 모니터 서버가 되도록 제한하려면
ROLE = PARTNER
또는ROLE = WITNESS
를 각각 지정합니다.참고
다양한 버전의 SQL Server에서 제공하는 데이터베이스 미러링 옵션에 대한 자세한 내용은 SQL Server 2016 버전에서 지원하는 기능을 참조하세요.
CREATE ENDPOINT 구문에 대한 완전한 설명은 CREATE ENDPOINT(Transact-SQL)를 참조하세요.
참고
기존 엔드포인트를 변경하려면 ALTER ENDPOINT(Transact-SQL)를 사용합니다.
예: 데이터베이스 미러링 지원을 위한 엔드포인트 만들기(Transact-SQL)
다음 예에서는 세 대의 다른 컴퓨터 시스템에 있는 기본 서버 인스턴스에 대한 데이터베이스 미러링 엔드포인트를 만듭니다.
서버 인스턴스의 역할 | 호스트 컴퓨터 이름 |
---|---|
파트너(처음에는 주 역할임) | SQLHOST01\. |
파트너(처음에는 미러 역할임) | SQLHOST02\. |
미러링 모니터 | SQLHOST03\. |
이 예에서 세 엔드포인트는 모든 사용 가능한 포트 번호를 사용할 수 있지만 모두 포트 번호 7022를 사용합니다. 세 엔드포인트에서 기본 유형인 Windows 인증을 사용하므로 AUTHENTICATION 옵션이 필요하지 않습니다. 세 엔드포인트는 모두 Windows 인증의 기본 동작에 따라 연결 인증 방법을 협상하도록 되어 있으므로 ENCRYPTION 옵션도 필요하지 않습니다. 또한 세 엔드포인트에는 모두 기본 동작에 따라 암호화가 필요합니다.
각 서버 인스턴스는 파트너나 미러링 모니터 서버로 역할이 제한되며 각 서버의 엔드포인트는 ROLE=PARTNER 또는 ROLE=WITNESS와 같이 해당 역할을 명시적으로 지정합니다.
중요
각 서버 인스턴스는 엔드포인트를 하나만 가질 수 있습니다. 따라서 서버 인스턴스가 세션에 따라 파트너 역할을 하거나 미러링 모니터 서버 역할을 하도록 하려면 ROLE=ALL을 지정하세요.
--Endpoint for initial principal server instance, which
--is the only server instance running on SQLHOST01.
CREATE ENDPOINT endpoint_mirroring
STATE = STARTED
AS TCP ( LISTENER_PORT = 7022 )
FOR DATABASE_MIRRORING (ROLE=PARTNER);
GO
--Endpoint for initial mirror server instance, which
--is the only server instance running on SQLHOST02.
CREATE ENDPOINT endpoint_mirroring
STATE = STARTED
AS TCP ( LISTENER_PORT = 7022 )
FOR DATABASE_MIRRORING (ROLE=PARTNER);
GO
--Endpoint for witness server instance, which
--is the only server instance running on SQLHOST03.
CREATE ENDPOINT endpoint_mirroring
STATE = STARTED
AS TCP ( LISTENER_PORT = 7022 )
FOR DATABASE_MIRRORING (ROLE=WITNESS);
GO
관련 작업
데이터베이스 미러링 엔드포인트를 구성하려면
데이터베이스 미러링 엔드포인트에 대한 정보를 보려면
참고 항목
ALTER ENDPOINT(Transact-SQL)
암호화 알고리즘 선택
CREATE ENDPOINT(Transact-SQL)
서버 네트워크 주소 지정(데이터베이스 미러링)
예제: Windows 인증을 사용하여 데이터베이스 미러링 설정(Transact-SQL)
데이터베이스 미러링 엔드포인트(SQL Server)