대상 주체 이름이 올바르지 않습니다. SSPI 컨텍스트를 생성 할 수 없습니다.


89

컴퓨터 A에서 SQL Server를 실행하는 컴퓨터 B로 SQL Server 연결을 얻는 데 어려움을 겪고 있습니다.

나는 광범위하게 Google을 검색했으며 내가 찾은 모든 것이 작동하지 않았습니다. 또한이 문제를 해결하는 과정을 단계별로 안내하지도 않습니다.

Kerberos를 사용하지 않고 구성된 NTLM을 사용합니다.

여기에 이미지 설명 입력

관련된 컴퓨터는 다음과 같습니다 (xx는 보안을 위해 일부 컴퓨터 이름을 가리는 데 사용됨).

  • xxPRODSVR001 -Windows Server 2012 도메인 컨트롤러
  • xxDEVSVR003 -Windows Server 2012 (이 시스템에서 오류가 발생 함)
  • xxDEVSVR002 -Windows Server 2012 (이 컴퓨터는 SQL Server 2012를 실행 중입니다)

다음 SPN은 DC (xxPRODSVR001)에 등록되어 있습니다. 보안을 위해 yyy로 도메인을가 렸습니다.

CN = xxDEVSVR002, CN = Computers, DC = yyy, DC = local에 대해 등록 된 ServicePrincipalName :

            MSSQLSvc/xxDEVSVR002.yyy.local:49298

            MSSQLSvc/xxDEVSVR002.yyy.local:TFS

            RestrictedKrbHost/xxDEVSVR002

            RestrictedKrbHost/xxDEVSVR002.yyy.local

            Hyper-V Replica Service/xxDEVSVR002

            Hyper-V Replica Service/xxDEVSVR002.yyy.local

            Microsoft Virtual System Migration Service/xxDEVSVR002

            Microsoft Virtual System Migration Service/xxDEVSVR002.yyy.local

            Microsoft Virtual Console Service/xxDEVSVR002

            Microsoft Virtual Console Service/xxDEVSVR002.yyy.local

            SMTPSVC/xxDEVSVR002

            SMTPSVC/xxDEVSVR002.yyy.local

            WSMAN/xxDEVSVR002

            WSMAN/xxDEVSVR002.yyy.local

            Dfsr-12F9A27C-BF97-4787-9364-D31B6C55EB04/xxDEVSVR002.yyy.local

            TERMSRV/xxDEVSVR002

            TERMSRV/xxDEVSVR002.yyy.local

            HOST/xxDEVSVR002

            HOST/xxDEVSVR002.yyy.local

CN = xxDEVSVR003, CN = Computers, DC = yyy, DC = local에 대해 등록 된 ServicePrincipalName :

            MSSQLSvc/xxDEVSVR003.yyy.local:1433

            MSSQLSvc/xxDEVSVR003.yyy.local

            Hyper-V Replica Service/xxDEVSVR003

            Hyper-V Replica Service/xxDEVSVR003.yyy.local

            Microsoft Virtual System Migration Service/xxDEVSVR003

            Microsoft Virtual System Migration Service/xxDEVSVR003.yyy.local

            Microsoft Virtual Console Service/xxDEVSVR003

            Microsoft Virtual Console Service/xxDEVSVR003.yyy.local

            WSMAN/xxDEVSVR003

            WSMAN/xxDEVSVR003.yyy.local

            TERMSRV/xxDEVSVR003

            TERMSRV/xxDEVSVR003.yyy.local

            RestrictedKrbHost/xxDEVSVR003

            HOST/xxDEVSVR003

            RestrictedKrbHost/xxDEVSVR003.yyy.local

            HOST/xxDEVSVR003.yyy.local

이제 SQL Server 오류 메시지 만 더 설명적이고 연결하려는 주체 이름을 알려 주면이 문제를 진단 할 수 있습니다.

누구든지이 문제를 해결하는 방법을 안내해 줄 수 있습니까? 아니면 제가 제공 한 것이 잘못된 것을 볼 수 있습니까?

더 많은 디버그 정보를 생성 해 드리겠습니다. 필요한 것을 알려주세요.


우리는 내부 DNS 서버를 실행하지 않습니다. 그러나 이것을 문제로 제거하기 위해 "ping -a xxxx"를해야한다고 말하는 것입니까, 아니면 중복이 있는지 확인하는 다른 방법이 있습니까?
TheEdge

저는 전문가는 아니지만 SPN과 SSPI가 Kerberos에 해당한다고 생각 했습니까? Kerberos를 사용하고 있지 않습니까?
Dylan Smith

@DylanSmith 내가 볼 수있는 것은 아닙니다 ..... SQL Server에서 SP를 실행했을 때 (지금 이름은 잊어 버려) 모두 NTLM으로 나타났습니다. 내가 어떻게 확인하는지 알아?
TheEdge

질문이 오래
Eduardo

답변:


57

작업중인 ASP.NET MVC 앱에서이 문제가 발생했습니다.

최근에 비밀번호를 변경했다는 사실을 깨달았고, 로그 아웃했다가 다시 로그인하여 수정할 수있었습니다.


1
이것은 내 문제였습니다. 비밀번호가 변경되었습니다. 내 계정에서 앱 풀을 실행했습니다.
Dragos Durlut

이 문제가 발생했을 때 로그 아웃했다가 다시 로그인했습니다. 문제를 해결했습니다.
shary.sharath

비슷한 문제. 이것은 나의 행동을 되돌아 보는 데 도움이되었습니다. TQ
레디

24

Windows 인증을 사용하여 SQL Server Management Studio를 통해 연결할 때이 오류가 발생했습니다. 내 암호가 만료되었지만 아직 변경하지 않았습니다. 일단 변경되면 컴퓨터가 새 자격 증명을 사용하여 작동하도록 로그 아웃했다가 다시 로그인해야했습니다.


22

Integrated Security=true연결 문자열에서이 매개 변수를 제거하도록 설정 하십시오.


중요 : @Auspex 사용자가 언급했듯이

통합 보안을 제거하면 Windows 자격 증명으로 로그인하려고 할 때 오류가 발생하므로이 오류를 방지 할 수 있습니다. 불행히도 대부분의 경우 Windows 자격 증명으로 로그인 할 수 있기를 원합니다.


SSMS를 통해 연결되는 경우 어떻게 제거합니까?
Geoff Dawdy

23
음, 명확하게 제거 Integrated Security 하면 Windows 자격 증명으로 로그인하려고 할 때 오류가 발생하기 때문에이 오류 방지 수 있습니다. 불행히도 대부분의 경우 Windows 자격 증명으로 로그인 할 수 있기를 원합니다 !
Auspex

2
@GeoffDawdy 아래 내 대답이 도움이 될 수 있습니까? 만료 된 암호로 인해 암호를 변경하고 로그 아웃했다가 다시 로그인하면 모든 것이 정상적으로 작동했습니다.
Matt Shepherd

3
시간을 절약하고이 도구를 실행하십시오. microsoft.com/en-us/download/…
Eduardo

15

Windows 인증을 시도 할 때 동일한 오류가 발생했습니다. 우스꽝스럽게 들리지만 다른 사람에게 도움이되는 경우를 대비하여 : 로그인 (!)하는 동안 내 도메인 계정이 어떻게 든 잠 겼기 때문입니다. 계정을 잠금 해제하면 문제가 해결되었습니다.


12

암호 대신 PIN을 사용하여 Windows 10에 로그인했습니다. 로그 아웃했다가 대신 내 암호로 다시 로그인했으며 Management Studio를 통해 SQL Server에 로그인 할 수있었습니다.


말도 안 돼. 그리고 그것은 효과가있었습니다. 나는 이것에 너무 많은 시간을 낭비했다. 감사합니다!
mcb2k3

2
죄송합니다. 그게 아닙니다. SSMS는 내가 보지 않을 때 스위치를 켜고 SQL Server 계정으로 돌아갔습니다. 하지만 마침내 Microsoft 계정을 사용하여 로컬로 로그인하는 것에서 로컬 계정을 사용하는 것으로 전환을 시도했습니다. 그게 속임수 였고 내 PIN을 사용하여 로그인하더라도 이제 작동하는 것 같습니다.
mcb2k3

핀 대신 비밀번호를 사용하는 것도 저에게 효과적이었습니다. Microsoft의 경우 +1.
BrunoMartinsPro

OMG! 나는 이것이 실제로 차이를 만들었다는 것을 믿을 수 없다!
arni

8

이 가장 모호한 오류에 또 다른 잠재적 솔루션을 추가하려면 다음을 수행하십시오 The target principal name is incorrect. Cannot generate SSPI context. (.Net SqlClient Data Provider).

SQL Server를 ping 할 때 확인 된 IP가 구성 관리자의 IP와 동일한 지 확인합니다. 확인하려면 SQL Server 구성 관리자를 열고 SQL Server 네트워크 구성> MSSQLServer 용 프로토콜> TCP / IP로 이동합니다.

TCP / IP가 활성화되어 있는지 확인하고 IP 주소 탭에서 ping을 수행 할 때 서버가 확인하는 IP가 여기에서 동일한 지 확인합니다. 그것은 나를 위해이 오류를 수정했습니다.


7

SSPI 컨텍스트 오류는 확실히 Kerberos를 사용하여 인증을 시도하고 있음을 나타냅니다 .

Kerberos 인증 SQL Server의 Windows 인증 은 컴퓨터와 네트워크 도메인 컨트롤러간에 추진 된 관계가 필요한 Active Directory에 의존 하므로 먼저 해당 관계의 유효성을 검사해야합니다.

다음 Powershell 명령 Test-ComputerSecureChannel을 통해 해당 관계를 빠르게 확인할 수 있습니다 .

Test-ComputerSecureChannel -verbose

여기에 이미지 설명 입력

False를 반환 하면 컴퓨터 Active Directory 보안 채널을 복구해야 합니다. 그렇지 않으면 컴퓨터 외부에서 도메인 자격 증명 유효성 검사가 불가능하기 때문입니다.

다음 Powershell 명령을 통해 컴퓨터 보안 채널을 복구 할 수 있습니다 .

Test-ComputerSecureChannel -Repair

보안 이벤트 로그를 확인하십시오. kerberos를 사용하는 경우 인증 패키지 : Kerberos로 로그온 시도가 표시되어야합니다.

NTLM 인증이 실패 할 수 있으므로 kerberos 인증을 시도하고 있습니다. 보안 이벤트 로그에 NTLM 로그온 시도 실패가 표시 될 수도 있습니다.

dev에서 kerberos 이벤트 로깅을 켜서 매우 장황하지만 kerberos가 실패한 이유를 디버깅 할 수 있습니다.

SQL Server 용 Microsoft의 Kerberos 구성 관리자는 이 문제를 빠르게 진단하고 해결하는 데 도움이 될 수 있습니다.

읽어야 할 좋은 이야기가 있습니다. http://houseofbrick.com/microsoft-made-an-easy-button-for-spn-and-double-hop-issues/


이것은 나를 위해 문제를 해결했습니다. SPN이 Active Directory의 잘못된 사용자 개체에 등록되었습니다. SQL Server 용 Kerberos 구성 관리자는 두 번의 클릭으로 문제를 해결했습니다!
Craig-MSFT

6

이 문제는 Windows 자격 증명 문제인 것 같습니다. VPN이있는 업무용 노트북에서 동일한 오류가 발생했습니다. 직접 연결할 때 성공적으로 사용하는 도메인 / 사용자 이름으로 로그인되어 있지만 다른 연결로 VPN으로 이동하자마자이 오류가 발생합니다. 서버를 ping 할 수 있기 때문에 DNS 문제라고 생각했지만 명령 프롬프트에서 내 사용자로 명시 적으로 SMSS를 실행해야했습니다.

예 : runas / netonly / user : YourDoman \ YourUsername "C : \ Program Files (x86) \ Microsoft SQL Server Management Studio 18 \ Common7 \ IDE \ Ssms.exe"


비슷한 문제가 발생했습니다 (Windows VM이있는 iMac vpn). 내 작업의 DNS 서버를 Mac의 Wi-Fi 네트워크 설정에 추가하여 문제를 해결했습니다. 나는 더 나은 방법이 있다고 생각하지만 이것이 나를 위해 일했습니다.
Erik Pearson

5

SQL Box와 클라이언트 모두에 로그인하고 다음을 입력합니다.

ipconfig /flushdns
nbtstat -R

그래도 작동하지 않으면 클라이언트 컴퓨터에서 DHCP를 갱신하십시오 ... 이것은 사무실에있는 2 대의 PC에서 작동합니다.


내 클라이언트 시스템과 SQL 상자 플러스 ipconfig/release및 내 클라이언트 시스템에서 귀하의 대답을했지만 ipconfig/renew그것은 나를 위해 작동하지 않았습니다. (
AlbatrossCafe

4

나는 이것을 만났고 두 가지를 수행하여 수정했습니다.

  1. https://support.microsoft.com/en-us/kb/811889에 설명 된대로 ADSI 편집을 사용하여 서비스 계정에 읽기 / 쓰기 servicePrincipalName 권한 부여
  2. 다음을 사용하여 SQL Server 컴퓨터 계정 (서비스 계정과 반대) 에 이전에 존재했던 SPN 제거

    setspn -D MSSQLSvc/HOSTNAME.domain.name.com:1234 HOSTNAME
    

    여기서 1234 는 인스턴스에서 사용하는 포트 번호입니다 (마인은 기본 인스턴스가 아님).


MS SQL Server 인스턴스를을 사용 NT Service\MSSQLSSERVER하여 실행에서 관리 서비스 계정으로 실행으로 전환했습니다 . 그렇게 한 후 SSMS는 서버의 로컬 데이터베이스에 연결할 수 있지만 랩톱에서는 원격으로 연결할 수 없습니다. SPN을 수정하면 문제가 해결되었습니다.
Hydrargyrum


4

격리 된 네트워크의 PC 클러스터에서 IPv6을 테스트하고 있었는데 IPv4로 되 돌렸을 때이 문제가 발생했습니다. 나는 활성 디렉토리, DNS 및 DHCP에서 놀았으므로 Kerberos 설정을 깨기 위해 무엇을 찌르는 지 알지 못했습니다.

내가 찾은 원격 연결을 연결하는 유용한 팁을 사용하여 소프트웨어 외부의 연결을 다시 테스트했습니다.

https://blogs.msdn.microsoft.com/steverac/2010/12/13/test-remote-sql-connectivity-easily/

그런 다음 간단한 검색을 통해 Microsoft 웹 사이트 https://support.microsoft.com/en-gb/help/811889/how-to-troubleshoot-the-cannot-generate-sspi-context-error-message 에서이를 발견했습니다 .

SQL 서버에서 도구를 실행하여 상태가 오류 인 경우 문제가 있는지 확인한 다음 나타나는 수정 버튼을 누르십시오.

이것은 나를 위해 문제를 해결했습니다.


3

이는 일반적으로 SPN (Service Principle Name)이 누락되었거나 잘못되었거나 중복 되었기 때문입니다.

해결 단계 :

  1. SQL Server가 사용중인 AD 계정 확인
  2. Powershell 또는 CMD의 관리자 모드에서 다음 명령을 실행합니다 (서비스 계정에는 도메인이 포함되지 않아야 함).
setspn -L <ServiceAccountName> | Select-String <ServerName> | select line
  1. 반환 된 출력에 포트가 있고 포트가없는 완전한 SPN이 포함되어 있는지 확인하십시오.

    예상 출력 :

    Registered ServicePrincipalNames for CN=<ServiceAccountName>,OU=CSN Service Accounts,DC=<Domain>,DC=com: 
    MSSQLSvc/<ServerName>.<domain>.com:1433
    MSSQLSvc/<ServerName>:1433                                           
    MSSQLSvc/<ServerName>.<domain>.com
    MSSQLSvc/<ServerName>
    
  2. 위의 항목이 모두 표시되지 않으면 PowerShell 또는 CMD의 관리자 모드에서 다음 명령을 실행합니다 (기본값 1433을 사용하지 않는 경우 포트를 변경해야 함).

SETSPN -S  MSSQLSvc/<ServerName> <Domain>\<ServiceAccountName> 
SETSPN -S  MSSQLSvc/<ServerName>.<Domain> <Domain>\<ServiceAccountName> 
SETSPN -S  MSSQLSvc/<ServerName>:1433 <Domain>\<ServiceAccountName> 
SETSPN -S  MSSQLSvc/<ServerName>.<Domain>:1433 <Domain>\<ServiceAccountName>
  1. 위의 작업이 완료되면 일반적으로 DNS 전파에 몇 분 정도 걸립니다.

또한 중복 된 SPN이 발견되었다는 메시지가 표시되면 해당 SPN을 삭제하고 다시 만들 수 있습니다.


2

웹 애플리케이션에 액세스 할 때이 문제가 발생했습니다. 최근에 Windows 암호를 변경했기 때문일 수 있습니다.

이 문제는 웹 응용 프로그램을 호스팅 한 앱 풀의 암호를 업데이트하면 해결되었습니다.


2

클라이언트와 서버 간의 시계가 일치하는지 확인하십시오.

이 오류가 간헐적으로 발생했을 때 위의 답변 중 어느 것도 작동하지 않았으며 일부 서버에서 시간이 이동 한 것을 발견했습니다. 다시 동기화되면 오류가 사라졌습니다. Windows에서 시간을 자동으로 동기화하는 방법을 보려면 w32tm 또는 NTP를 검색하십시오.


1

내 문제에 대한 해결책을 찾을 때 여기에 도착했기 때문에 다른 사람들도 여기에 도착할 경우를 대비하여 여기에 내 해결책을 공유하겠습니다.

내 컴퓨터가 다른 도메인의 다른 사무실로 이동할 때까지 SQL Server에 제대로 연결했습니다 . 그런 다음 전환 후 대상 주체 이름과 관련 하여이 오류가 발생했습니다. 수정 된 것은 server.domain.com 과 같은 정규화 된 이름을 사용하여 연결하는 것 입니다. 그리고 실제로 첫 번째 서버에 그런 식으로 연결하면 서버 이름 만 사용하여 (전체 자격없이) 다른 서버에 연결할 수 있지만 마일리지는 다를 수 있습니다.


이 문제는 SQL 연결에 인증서를 추가했을 때만 발생했습니다. 인증서가 FQDN에 발급되었으므로 FQDN \ Instance에 연결할 때 작동했습니다.
Slogmeister Extraordinaire

1

나는 오늘 이것을 만났고 내 수정 사항을 공유하고 싶었습니다. 이것은 단순히 간과되고 수정하기 쉽기 때문입니다.

우리는 자체 rDNS를 관리하고 최근에 서버 이름 지정 체계를 다시 수정했습니다. 그 일환으로 우리는 rDNS를 업데이트하고 이것을하는 것을 잊었습니다.

ping이 올바른 호스트 이름을 찾았지만 ping -a가 잘못된 호스트 이름을 반환했습니다.

쉬운 수정 : rDNS 변경, ipconfig / flushdns 수행, 30 초 기다림 (내가하는 일), 또 다른 ping -a 수행, 올바른 호스트 이름 확인, 연결 ... 이익.


1

나는 이것을 위해 새로운 것을 만났다 : Server 2012에서 호스팅되는 SQL 2012. SQL AlwaysOn을위한 클러스터를 만드는 임무를 맡았습니다.
클러스터는 모두가 SSPI 메시지를 받았습니다.

문제를 해결하려면 다음 명령을 실행했습니다.

setspn -D MSSQLSvc/SERVER_FQNName:1433 DomainNamerunningSQLService

DomainNamerunningSQLService== SQL에 대해 설정 한 도메인 계정 명령을 실행하려면 도메인 관리자가 필요했습니다. 클러스터의 한 서버에만 문제가 있습니다.

그런 다음 SQL을 다시 시작했습니다. 놀랍게도 저는 연결할 수있었습니다.


나는 이와 같은 문제가 있었지만 클러스터에는 없었습니다. SQL Engine 서비스에 대한 로그온을 도메인 계정으로 변경했습니다. MSSQLSvc/SERVER_FQNName:*컴퓨터 계정에서 SPN 을 제거한 다음 서비스를 실행하는 사용자 계정에 추가해야했습니다.
Slogmeister Extraordinaire

1

Visual Studio 2015 콘솔 앱의 랩톱에서 SQL Server 2015를 실행하는 VM에 연결하려고했습니다. 전날 밤에 앱을 실행했는데 괜찮습니다. 아침에 앱을 디버그하려고하면이 오류가 발생합니다. 나는 시도 ipconfig/flush하고 release+ renew와 다른 쓰레기를 많이했지만 결국 ...

VM을 다시 시작하고 클라이언트를 다시 시작합니다. 그것은 나를 위해 그것을 고쳤습니다. 나는 매번 작업을 다시 시작해야했다.


비슷한 경험, VM의 SQLServer 2016. 연결이 실패하기 시작한 이유를 모르겠습니다. VM을 다시 시작하면 클라이언트를 다시 시작할 필요없이 문제가 해결되었습니다.
youcantryreachingme

1

내 SQL 서버 에서이 문제가 발생했습니다. 나는 setspn -D mssqlsvc \ Hostname.domainname Hostname 그런 다음 SQL 서버 서비스를 중지하고 시작했습니다.

내 SQL 서비스를 중지하고 시작하면 완료되었을 것이라고 생각합니다.


이것이 setspn -L <Hostname>작동했던 서버와 비교 한 후에 내가 한 일입니다. 작동하는 모든 인스턴스에는 SPN이 등록되지 않았습니다. 내가 무엇을하는지 잘 모르겠지만 SPN을 등록하지 않으면 NTLM을 사용할 수 있습니다. 감사!
BenderBoy

이것은 분명히 NTLM 대신 Kerberos를 사용하려는 경우 실제로 해결책이 아닙니다. serverfault.com/a/384721 . 실제로이 솔루션은 기본적으로 Kerberos 인증을 해제합니다.
BenderBoy

1

나는 같은 문제가 있었지만 기계를 잠그고 잠금을 해제하는 것이 저에게 효과적이었습니다. 때때로 방화벽 문제로 인해 오류가 발생합니다.

나는 그것이 당신에게 효과가 있을지 여부를 확신하지 못하며 단지 내 경험을 공유합니다.


1

여기에서 모든 솔루션을 시도했지만 아직 작동하지 않았습니다. 작동중인 해결 방법은 연결 을 클릭 하고 서버 이름을 입력 한 다음 옵션, 연결 속성 탭을 선택하는 것입니다. "네트워크 프로토콜"을 "명명 된 파이프"로 설정합니다. 이를 통해 사용자는 네트워크 자격 증명을 사용하여 원격으로 연결할 수 있습니다. 수정 사항이 생기면 업데이트를 게시하겠습니다.


실제로 "TCP / IP"로 설정했습니다. 변경 작업으로 문제가 해결되었는지 또는 네트워크 상황에 대한 특정 설정이 해결
되었는지 모르겠습니다

1

제 경우에는 Wi-Fi에 DNS를 설정하는 것이 문제였습니다. 설정을 제거하고 비워두고 작업했습니다.

DNS를 구성하는 Como ficou minha configuração do DNS


1

"SQL Server 구성 관리자"에서 "명명 된 파이프"가 활성화되어 있는지 확인합니다. 이것은 나를 위해 일했습니다.

  1. "SQL Server 구성 관리자"를 엽니 다.
  2. 왼쪽 목록에서 "SQL Server 네트워크 구성"을 확장합니다.
  3. "[Your Instance Name]에 대한 프로토콜"을 선택합니다.
  4. 오른쪽 목록에서 "Named Pipes"를 마우스 오른쪽 버튼으로 클릭합니다.
  5. "사용"을 선택하십시오.
  6. 인스턴스 서비스를 다시 시작하십시오.

1
나는 같은 메시지를 받았다. 나는 IP와 연결을 시도하고 있었기 때문에 stackoverflow.com/users/8568873/s3minaki , 즉 1-6 단계를 수행했지만 Named Pipes 대신 TCP / IP를 활성화했습니다. 또한 IPALL에서 TCP 동적 포트를 지우고 대신 TCP 포트를 설정했습니다. 이 포트를 실행하는 다른 인스턴스가 없는지 확인하십시오. 그렇지 않으면 인스턴스가 다시 시작되지 않습니다. SQL 사용자도 필요했는데 Windows 인증이 작동하지 않습니다. SQL Manager에서 xxxx \ instancename, portnr로 연결합니다. ie 127.0.0.1 \ SQLEXPRESS, 1433
Tomas Hesse


1

제 상황에서는 통합 보안을 사용 하여 도메인이 없는 네트워크의 다른 PC에있는 PC에서 SQL Server로 연결하려고했습니다 . 두 PC 에서 동일한 Microsoft 계정으로 Windows로그인했습니다 . 나는 로컬 계정으로 전환 모두 PC에서와 SQL Server는 성공적으로 연결.


1

제 경우에는 개발 환경에서 작업 한 이후 누군가가 도메인 컨트롤러를 종료했고 Windows 자격 증명을 인증 할 수 없었습니다. 도메인 컨트롤러를 켠 후 오류가 사라지고 모든 것이 정상적으로 작동했습니다.


1

네트워크 연결로 인해이 문제에 대한 또 다른 틈새 시장. Windows VPN 클라이언트를 통해 연결했는데 Wifi에서 유선 연결로 전환 할 때이 문제가 나타납니다. 내 상황에 대한 해결책은 어댑터 메트릭을 수동으로 조정하는 것이 었습니다.

PowerShell에서 Get-NetIPInterface를 사용하여 모든 메트릭 값을 확인합니다. 숫자가 낮을수록 비용이 저렴하므로 Windows에서 선호합니다. 나는 이더넷과 VPN을 전환했고 자격 증명은 SSMS가 만족하기 위해 필요한 곳에서 얻었습니다.

자동 메트릭 기능을 구성하려면 제어판에서 네트워크 연결을 두 번 클릭합니다. 네트워크 인터페이스를 마우스 오른쪽 단추로 클릭 한 다음 속성을 선택합니다. 인터넷 프로토콜 (TCP / IP)을 클릭 한 다음 속성을 선택합니다. 일반 탭에서 고급을 선택합니다. 메트릭을 지정하려면 IP 설정 탭에서 자동 메트릭 확인란을 선택 취소 한 다음 인터페이스 메트릭 필드에 원하는 메트릭을 입력합니다.

출처 : https://docs.microsoft.com/en-us/troubleshoot/windows-server/networking/automatic-metric-for-ipv4-routes


0

이 문제의 변형이 발생했으며 다음과 같은 특징이 있습니다.

  • 사용자가 명명 된 인스턴스 에 성공적으로 연결할 수있었습니다 ( 예 : 연결 Server\Instance성공).
  • 사용자가 기본 인스턴스에 연결할 수 없습니다. 예를 들어 ServerSSPI에 관한 OP의 스크린 샷으로 연결 실패
  • 사용자가 정규화 된 이름으로 기본 인스턴스를 연결할 수 없습니다 (예 : 연결 Server.domain.com실패 (시간 초과)).
  • 사용자가 명명 된 인스턴스없이 IP 주소에 연결할 수 없습니다 (예 : 연결 192.168.1.134실패).
  • 도메인에없는 다른 사용자 (예 : 네트워크에 VPN을 사용하는 사용자)는 도메인 자격 증명을 사용하여 기본 인스턴스 및 IP 주소에 성공적으로 연결할 수있었습니다.

따라서이 단일 사용자가 연결할 수없는 이유를 파악하는 데 많은 골칫거리를 겪은 후 상황을 해결하기 위해 취한 단계는 다음과 같습니다.


  1. setspn -l Server
    a.를 사용하여 SPN 목록에서 서버를 살펴보십시오 . 우리의 경우에는Server.domain.com
  2. 에있는 호스트 파일에 항목을 추가합니다 C:\Windows\System32\drivers\etc\hosts(이 파일을 변경하려면 관리자 권한으로 메모장을 실행). 우리가 추가 한 항목은
    Server.domain.com Server

그 후 SSMS를 통해 기본 인스턴스에 성공적으로 연결할 수있었습니다.


0

Windows 인증으로 로깅하는 동안 SQL Server 2014 에서도이 문제가 발생하여 서버를 한 번 다시 시작한 다음 로그인을 시도한 문제를 해결했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.