다음을 통해 공유


MSSQLSERVER_21879

적용 대상: SQL Server

세부 정보

attribute
제품 이름 SQL Server
이벤트 ID 21879
이벤트 원본 MSSQLSERVER
구성 요소 SQLEngine
심볼 이름 SQLErrorNum21879
메시지 텍스트 원래 게시자 '%s' 및 게시자 데이터베이스 '%s'에 대해 리디렉션된 서버 '%s'을(를) 쿼리하여 원격 서버의 이름을 확인할 수 없습니다. 오류 %d, 오류 메시지 '%s'.

설명

sp_validate_redirected_publisher는 원격 서버의 이름을 검색하기 위해 자체적으로 만든 임시 연결된 서버를 사용하여 리디렉션된 게시자에 연결합니다. 오류 21879는 연결된 서버 쿼리에 실패한 경우에 반환됩니다. 원격 서버 이름을 요청하는 호출은 일반적으로 임시 연결된 서버의 첫 번째 사용이므로 연결 문제가 있는 경우 이 호출에서 먼저 나타날 수 있습니다. 이 원격 호출은 원격 서버에서 선택 @@servername 실행하기만 하면 됩니다.

리디렉션된 게시자를 쿼리하는 데 사용된 연결된 서버는 원래 게시자에 대해 sp_adddistpublisher가 호출될 때 제공된 보안 모드, 로그인 및 암호를 사용합니다.

  • SQL Server 인증을 사용한 경우(보안 모드 0) 지정된 로그인 및 암호가 원격 서버에 연결하는 데 사용됩니다.

  • Windows 인증 사용된 경우(보안 모드 1) 연결에 신뢰할 수 있는 연결이 사용됩니다.

    • 사용자가 sp_validate_redirected_publisher를 명시적으로 호출한 경우에는 사용자가 실행되고 있는 Windows 로그인을 사용하여 연결합니다.

    • sp_validate_redirected_publishersp_get_redirected_publisher의 복제 에이전트에서 호출한 경우에는 해당 에이전트와 연관된 Windows 로그인이 사용됩니다.

오류 21879는 리디렉션된 대상 게시자에 알려지지 않은 로그인을 사용하여 sp_validate_redirected_publisher가 호출되었음을 나타낼 수 있습니다.

사용자 작업

SQL Server 인증 로그인 또는 Windows 인증 로그인이 모든 가용성 그룹 복제본에서 유효하고 게시자 데이터베이스의 구독 메타데이터 테이블(syssubscriptions 및 sysmergesubscriptions)에 액세스할 수 있는 충분한 권한 부여가 있는지 확인합니다.

구독자에서 실행되는 병합 에이전트 같이 배포자와는 다른 노드에서 실행되는 복제 에이전트에서 시작한 sp_get_redirected_publisher 호출에서 오류 21879가 반환될 경우 특별히 고려해야 할 사항이 있습니다. 리디렉션된 게시자에 대한 연결에 Windows 인증 사용하는 경우 연결이 성공적으로 설정되려면 Kerberos 인증을 위해 SQL Server를 구성해야 합니다. Windows 인증 사용되고 SQL Server가 Kerberos 인증에 대해 구성되지 않은 경우 구독자에서 실행되는 병합 에이전트가 'NT AUTHORITY\ANONYMOUS LOGON' 로그인에 실패했음을 나타내는 오류 18456이 수신됩니다. 이 문제를 해결할 수 있는 세 가지 방법이 있습니다.

  • Kerberos 인증을 위해 SQL Server를 구성합니다. SQL Server 온라인 설명서의 Kerberos 인증 및 SQL Server를 참조하세요.

  • sp_changedistpublisher 사용하여 MSdistpublishers의 원래 게시자와 연결된 보안 모드를 변경하고 연결에 사용할 로그인 및 암호를 지정합니다.

  • 병합 에이전트 명령줄에서 명령줄 매개 변수 BypassPublisherValidation을 지정하여 배포자에서 sp_get_redirected_publisher 호출할 때 유효성 검사를 무시합니다.