문제

데이터베이스 스크립트를 작성하려는 .NET 응용 프로그램에서 작업 중입니다. 프로젝트를 구축하는 동안 "SSPI 컨텍스트를 생성 할 수 없습니다". 이 오류는 출력 창 (VS2008 내부)에 표시되며 건물 프로세스가 실패했습니다. 이에 도와주세요. SQL Server는 Windows Authentication 및 Running에서 네트워크 서비스로 작동하도록 구성되어 있습니다 (이 두 가지 사항은 내 프로젝트에 있어야합니다).

이에 도와주세요. 이 오류는 일관성이없는 것 같습니다. 과거에는 기계를 다시 시작하여 도메인 시간과 인터넷의 일부 제안에 맞게 시스템 시간을 변경하여 과거에 고정되었습니다. 이에 도와주세요.

도움이 되었습니까?

해결책

다양한 원인으로 상당히 일반적인 오류입니다. 여기에서 시작하십시오. KB 811889

  • 어떤 버전의 SQL 서버?
  • 클라이언트와 서버의 Windows?
  • 로컬 또는 네트워크 SQL 인스턴스?
  • 도메인 또는 작업 그룹? 공급자?
  • 비밀번호 변경
  • 로컬 Windows 로그 오류?
  • 다른 앱이 영향을 받고 있습니까?

다른 팁

PC가 잠시 동안 인증 도메인 컨트롤러에 연락하지 않은 것 같습니다. (나는 이런 일이 내 노트북에서 몇 번이나 일어났다.)

비밀번호가 만료되면 발생할 수 있습니다.

MSSQLServer-Service를 실행중인 사용자를 변경 한 후 같은 문제가있었습니다.

SQL Server를 사용하여 잘못된 SPN을 해결하기 위해이 도구를 사용했습니다.

http://www.microsoft.com/en-us/download/details.aspx?id=39046 -SQL Server 용 Microsoft® Kerberos 구성 관리자

제 경우에는 꽤 잘 작동했습니다.

이 오류는 일반적으로 Windows 사용자 계정이 만료되고 이미 이전 비밀번호로 로그인 된 경우에 발생합니다. 사용자에게 컴퓨터를 다시 시작하고 비밀번호가 만료되었는지 또는 암호를 변경했는지 확인하십시오. 도움이 되었기를 바랍니다!!!!!

가장 먼저해야 할 일은 통나무에 들어가는 것입니다 (Management\SQL Server Logs) 그리고 SQL Server가 있는지 확인하십시오 successfully registered the Service Principal Name (SPN). 어떤 종류의 오류가 보이면 (The SQL Server Network Interface library could not register the Service Principal Name (SPN) for the SQL Server service) 그런 다음 어디서부터 시작 해야할지 알 수 있습니다.

우리는 계정 SQL Server가 실행중인 계정을 변경했을 때 이것이 일어나는 것을 보았습니다. 로컬 시스템 계정으로 재설정하면 문제가 해결되었습니다. Microsoft에는 다음에도 있습니다 가이드 SPN을 수동으로 구성합니다.

나는 나의 해결했다 Cannot Generate SSPI Context SQL Server 구성 관리자를 사용하여 오류가 발생합니다. 내 컴퓨터에 SQL Server Native Client 10.0이 있으므로 서버에 대한 연결은 명명 된 파이프 (또는 공유 메모리)를 사용하려고합니다. 다른 기계는 아무런 문제없이 내 앱을 실행할 수 있습니다. 구성 관리자를 살펴보면 파이프 이름이 지정된 파이프와 공유 메모리가 모두 활성화되었습니다 (양호). 그러나 별칭 하에서 컴퓨터 이름은 TCP 강제로 존재했습니다. 이것이 어떤 영향을 미치는지 몰랐기 때문에 프로그램의 연결 문자열을 변경했습니다.u003Cservername> .u003Cdomainname> 대신에. 결정된.

IIS에서 호스팅하는 경우 AppPool 계정의 비밀번호가 변경되지 않았는지 확인하십시오..

그렇다면 다음 단계를 따르십시오.

  • IIS로 이동하십시오
  • 응용 프로그램 풀을 클릭하십시오
  • 응용 프로그램의 앱풀을 선택하십시오
  • 앱풀을 마우스 오른쪽 버튼으로 클릭하십시오
  • 고급 설정
  • 신원
  • 비밀번호 업데이트
  • AppPool을 다시 시작하십시오

"SSPI 컨텍스트를 생성 할 수 없음"오류는 매우 일반적이며 여러 가지 이유로 발생할 수 있습니다. 기본 kerberos/ntlm 오류의 표지 오류입니다. GBN의 KB 기사 링크는 매우 좋은 출발점이며 평소는 문제를 해결합니다. 여전히 문제가있는 경우 문제 해결 단계를 따르는 것이 좋습니다. Kerberos 오류 문제 해결.

또한이 문제를 제기했으며 서버 관리자는 제안한 Indu_teja와 동일한 솔루션을 따라 해결했습니다. http://www.sqlservercentral.com/forums/topic546566-146-1.aspx

Indu_teja가 제안한 솔루션은 다음과 같이 말합니다.

이 "SSPI 컨텍스트 오류"를 얻는 경우. 우리가 직면 한 문제는 다음과 같습니다.

  1. SQL Server에 원격으로 연결할 수 없습니다.
  2. 그러나 로컬 계정으로 서버에 연결할 수 있습니다.

원인 : Active Directory의 SPN과 함께 적절한 동기화가 발생하지 않기 때문에 문제가 발생할 수 있습니다.

해결:

  1. SPN을 재설정해야합니다. SynyTax "Set Spn"을 사용하십시오. 구문을 순으로 한 번 확인할 수 있습니다.
  2. SQL Server Service 계정을 도메인 계정에서 로컬 계정으로 변경하고 SQL을 재활용 한 다음 도메인 계정으로 다시 재설정하고 SQL Server를 재활용하십시오.

방금 같은 문제가 있었고 다른 사용자 ID를 사용하여 SQL Server에서 사용자 로그인 자격 증명을 삭제하고 다시 추가했습니다.

여기 내 사례가 있습니다. SQL Server를 호스팅하는 원격 시스템이있었습니다. 로컬 컴퓨터에서 일부 C# 코드를 통해 SQL 인스턴스에 액세스하려고 했는데이 오류가 발생했습니다. 내 컴퓨터/도메인의 사용자 계정에 대한 내 비밀번호는 만료되었습니다. 다음과 같이 고쳤습니다.

  1. 원격 시스템을 열어 비밀번호 변경을 촉발했습니다.
  2. 이 프롬프트 내에서 암호를 변경하고 원격 시스템에 로그인했습니다.
  3. 나는 내 로컬 기계를 "잠금"했다 (사용 windows + L 키로서 사인온 페이지로 돌아갈 수 있도록 완전히 사인 오프 할 필요가 없었습니다.
  4. 새 비밀번호로 로컬 컴퓨터에 다시 로그인했습니다.

그런 다음 모든 것이 잘 작동했습니다.

제 경우에는 누락 된 SPN 이었고이 두 명령을 실행해야했습니다.

setspn -a mssqlsvc : servername servername setspn -a mssqlsvc : servername : 1433 servername

다시 말해 내 경우에는 FQDN을 이미 올바르게했지만 NetBios 이름만이 아니 었습니다. 추가 한 후에는 잘 작동했습니다. 처음에는 그렇지 않았지만 2 분을 기다린 후에는 그랬습니다.

이 오류가 발생했습니다. 비밀번호가 만료되어 변경해야했기 때문에 발생했습니다. 일부 프로그램에서는 여전히 로그인 할 수 있고 모든 것이 정상적으로 작동 할 수 있지만 (Windows 포함) SQL 서버에 로그인 할 수 없었기 때문에 눈치 채지 못했습니다.

아마도 연결 문자열에서 Integrated Security = SSPI를 사용했을 것입니다. SSPI는 Windows 인증을 사용하여 신뢰할 수있는 연결에 사용됩니다. 따라서 Windows 인증에서 올바르게 작동하려면 시스템 및 데이터베이스 서버가 동일한 도메인에 있어야하며 동일한 DNS 서버 주소를 사용하거나 신뢰할 수있는 도메인에 있어야합니다.

시스템 및 데이터베이스 서버가 동일한 도메인에있는 경우 시스템 네트워크 연결에서 IPv4 속성의 DNS 서버 주소를 확인하고 데이터베이스 서버에서 사용하는 동일한 DNS 서버를 제공하십시오.

vb.net에서 연결 문자열을 확인하는 것보다 링크 된 서버를 사용하는 경우. 통합 보안 = true; 모든 SQL 제공 업체에서 작동하지 않으며 OLEDB 제공 업체와 함께 사용하면 예외가 발생합니다. 따라서 기본적으로 통합 된 보안 = SSPI; SqlClient & OLEDB 제공과 함께 작동하기 때문에 선호됩니다. 여전히 오류가 발생하면 구문을 완전히 제거하십시오.

도메인 (Domain Server이지만 Domain Managing을 제외한 SQL Server와 관련이없는 서버 머신)을 재설정 하여이 해결을 할 수 있습니다.

즉각적인 지원에 감사드립니다!

이것의 정말 이상한 사례가있었습니다. SQL Server의 Windows 컴퓨터 이름이 포함 된 연결 문자열이있는 모든 웹 제품은 잘 작동했지만 내부 도메인이 부착 된 FQDN이있는 제품은 SSPI 오류가 발생했습니다. IE ComputerName vs Computername.Domain (Ping은 항상 예상대로 작동했습니다)

이것은 새 SQL 서버를 사용하는 경우에만 문제가 발생했으며 호스트 파일은 컴퓨터 이름과 ComputerName을 연결 문자열의 FQDN으로 지적했습니다.

이 경우 솔루션은 모든 연결 문자열을 컴퓨터 이름으로 만 설정하여 도메인 참조를 제거하는 것이 었습니다.

SQL : 2008R2 SQL2012

IIS : 2008R2

서비스 사용자를 Domain1 ServiceUser에서 Domain2 ServiceUser로 변경 한 인스턴스에 대한이 문제가있었습니다. SPN은 Domain1 ServiceUser에 의해 등록되어 있으며 Domain2 ServiceUser에 의해 등록되지 않았습니다. SPN을 Domain2 ServiceUser 아래에 등록했지만 문제는 지속되었습니다. 그런 다음 Domain1 ServiceUser에서 SPN을 제거하고 문제가 해결되었습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top