다음을 통해 공유


클라이언트 연결(ODBC)의 SPN(서비스 사용자 이름)

적용 대상: SQL Server Azure SQL 데이터베이스 Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System(PDW)

Important

SNAC(SQL Server Native Client)는 다음과 함께 제공되지 않습니다.

  • SQL Server 2022(16.x) 이상 버전
  • SQL Server Management Studio 19 이상 버전

SQL Server Native Client(SQLNCLI 또는 SQLNCLI11)와 레거시 Microsoft OLE DB Provider for SQL Server(SQLOLEDB)는 새로운 응용 프로그램 개발에 권장되지 않습니다.

새 프로젝트의 경우 다음 드라이버 중 하나를 사용합니다.

SQL Server 데이터베이스 엔진(버전 2012부터 2019까지)의 구성 요소로 제공되는 SQLNCLI의 경우 이 수명 주기 예외 지원을 참조하세요.

이 항목에서는 클라이언트 애플리케이션에서 SPN(서비스 사용자 이름)을 지원하는 ODBC 특성 및 함수에 대해 설명합니다. 클라이언트 애플리케이션 의 SPN에 대한 자세한 내용은 클라이언트 연결 의 SPN(서비스 사용자 이름) 지원 및 상호 Kerberos 인증 가져오기를 참조하세요.

연결 문자열 키워드

다음 연결 문자열 키워드를 사용하면 클라이언트 애플리케이션에서 SPN을 지정할 수 있습니다.

키워드
ServerSPN 서버의 SPN입니다. 기본값은 빈 문자열로, SQL Server Native Client에서 드라이버에서 생성된 기본 SPN을 사용합니다.
FailoverPartnerSPN 장애 조치(failover) 파트너의 SPN입니다. 기본값은 빈 문자열로, SQL Server Native Client에서 드라이버에서 생성된 기본 SPN을 사용합니다.

연결 특성

다음 연결 특성을 사용하면 클라이언트 애플리케이션에서 SPN을 지정하고 인증 방법을 쿼리할 수 있습니다.

속성 Type 사용
SQL_COPT_SS_SERVER_SPN

SQL_COPT_SS_FAILOVER_PARTNER_SPN
SQLTCHAR, 읽기/쓰기 서버의 SPN을 지정합니다. 기본값은 빈 문자열로, SQL Server Native Client에서 드라이버에서 생성된 기본 SPN을 사용합니다.

이 특성은 프로그래밍 방식으로 설정된 후 또는 연결이 열린 후에만 쿼리할 수 있습니다. 열려 있지 않은 연결에서 이 특성을 쿼리하거나 특성이 프로그래밍 방식으로 설정되지 않은 경우 SQL_ERROR가 반환되고 SQLState 08003 및 "연결을 열 수 없습니다"라는 메시지가 표시되며 진단 레코드가 기록됩니다.

연결이 열려 있을 때 이 특성을 설정하려고 하면 SQL_ERROR 반환되고 진단 레코드가 SQLState HY011 및 "현재 작업이 잘못되었습니다"라는 메시지와 함께 기록됩니다.
SQL_COPT_SS_INTEGRATED_AUTHENTICATION_METHOD SQLTCHAR, 읽기 전용 연결에 사용되는 인증 방법을 반환합니다. 애플리케이션에 반환되는 값은 Windows가 SQL Server Native Client로 반환하는 값입니다. 가능한 값은 다음과 같습니다.

NTLM 인증을 사용하여 연결을 열 때 반환되는 "NTLM"

Kerberos 인증을 사용하여 연결을 열 때 반환되는 "Kerberos"입니다.



이 특성은 Windows 인증을 사용한 열린 연결에 대해서만 읽을 수 있습니다. 연결이 열리기 전에 읽기를 시도하면 SQL_ERROR 반환되고 SQLState 08003과 "연결이 열려 있지 않음" 메시지와 함께 오류가 기록됩니다.

Windows 인증을 사용하지 않은 연결에서 이 특성을 쿼리하면 SQL_ERROR 반환되고 SQLState HY092 및 "잘못된 특성/옵션 식별자(SQL_COPT_SS_INTEGRATED_AUTHENTICATION_METHOD 신뢰할 수 있는 연결에만 사용할 수 있음)"라는 메시지와 함께 오류가 기록됩니다.

인증 방법을 확인할 수 없는 경우 SQL_ERROR가 반환되고 SQLState HY000 및 "일반 오류"라는 메시지가 표시되며 오류가 기록됩니다.
SQL_COPT_SS_MUTUALLY_AUTHENTICATED SQLSMALLINT, 읽기 전용 연결의 서버가 상호 인증된 경우 SQL_TRUE 반환합니다. 그렇지 않으면 SQL_FALSE 반환합니다.

이 특성은 열린 연결에 대해서만 읽을 수 있습니다. 연결이 열리기 전에 읽기를 시도하면 SQL_ERROR 반환되고 SQLState 08003과 "연결이 열려 있지 않음" 메시지와 함께 오류가 기록됩니다.

Windows 인증을 사용하지 않은 연결에 대해 이 특성을 쿼리하면 SQL_FALSE 반환됩니다.

SPN 지정에 대한 ODBC 함수 지원

다음 ODBC 함수는 클라이언트 애플리케이션 및 SPN을 지원합니다.

참고 항목

SQL Server Native Client(ODBC)