Problemen met het foutbericht 'Kan geen SSPI-context genereren'

Opmerking  Kerberos Configuratiebeheer is een diagnostisch hulpprogramma dat u helpt bij het oplossen van problemen met Kerberos gerelateerde problemen met SQL Server. Deze problemen kunnen veroorzaken fouten zoals "Kan geen SSPI-context genereren." Dit hulpprogramma is nu beschikbaar en kan worden gedownload vanaf de volgende locatie: https://www.Microsoft.com/download/details.aspx Zie de volgende artikelen in de Microsoft Knowledge Base voor meer informatie: Nieuwe tool: 'Microsoft Kerberos Configuration Manager van SQL Server' is gereed voor het oplossen van problemen met Kerberos-connectiviteit/Kerberos Configuratiebeheer voor SQL Server is beschikbaar

 

In deze sectie kunt u de achtergrondinformatie over waarom het foutbericht 'Kan geen SSPI-context genereren' verschijnt en het oplossen van de fout. Als de volgende voorwaarden voldaan wordt, wordt dit foutbericht wordt weergegeven:

  • U maakt verbinding met Microsoft SQL Server.

  • U geïntegreerde beveiliging gebruikt.

  • Kerberos-verificatie wordt gebruikt voor het uitvoeren van de delegatie van de beveiliging.

Wat zijn Kerberos-terminologie en Service Principal Name Het stuurprogramma voor SQL Server op een clientcomputer gebruikt geïntegreerde beveiliging met behulp van de Windows-beveiligingstoken van de gebruikersaccount als u een verbinding met een computer waarop SQL Server wordt uitgevoerd. Het beveiligingstoken van Windows wordt overgedragen van de client op de computer waarop SQL Server wordt uitgevoerd. Het stuurprogramma voor SQL Server worden uitgevoerd voor deze overdracht bij het beveiligingstoken van de gebruiker wordt overgedragen van de ene computer naar de andere met behulp van een van de volgende configuraties:

  • NTLM via Named Pipes (Security Support Provider Interface [SSPI] wordt niet gebruikt)

  • NTLM via TCP/IP-sockets met SSPI

  • Kerberos-verificatie via TCP/IP-sockets met SSPI

SSPI Security Support Provider Interface () is een set Windows API's waarmee de overdracht en wederzijdse verificatie via een algemene gegevens transport-laag, zoals TCP/IP-sockets. Daarom kan SSPI een computer waarop een besturingssysteem van Windows om veilig overdragen het beveiligingstoken van een gebruiker van de ene computer naar de andere over de transport-laag dat onbewerkte bytes aan gegevens kan verzenden. De fout 'Kan geen SSPI-context genereren' wordt gegenereerd wanneer de SSPI maakt gebruik van Kerberos-verificatie overdragen via TCP/IP en Kerberos-verificatie niet voltooien de noodzakelijke bewerkingen om te delegeren is het beveiligingstoken van de gebruiker naar de bestemming de computer waarop SQL Server wordt uitgevoerd.

Waarom Security Support Provider Interface maakt gebruik van NTLM of Kerberos-verificatie Een id die de naam 'Service Principal Name"(SPN) maakt gebruik van Kerberos-verificatie. Een SPN beschouwen als een unieke identificatie van enkele instantie in een domein of forest. Hebt u een SPN-naam voor een webservice, een SQL-service of een SMTP-service. U kunt ook meerdere exemplaren van de web-service op dezelfde fysieke computer met een unieke SPN hebben. Een SPN-naam voor SQL Server bestaat uit de volgende elementen:

  • ServiceClass: dit geeft de algemene klasse van de service. Dit is altijd MSSQLSvc voor SQL Server.

  • Host: dit is de FQDN-naam van DNS van de computer waarop SQL Server wordt uitgevoerd.

  • Poort: dit is het nummer van de poort waarop de service wordt geluisterd.

Bijvoorbeeld is een typische SPN-naam voor een computer waarop SQL Server als volgt:


MSSQLSvc/SQLSERVER1.northamerica.corp.mycompany.com:1433

De indeling van een SPN-naam voor een standaardexemplaar en de opmaak van een SPN-naam voor een benoemd exemplaar zijn niet anders. Het poortnummer is wat bindt de SPN op een bepaalde instantie. Wanneer de SQL Server-stuurprogramma op de client een geïntegreerde beveiliging verbinding met SQL Server maakt, wordt de code van het stuurprogramma op de client geprobeerd om te zetten de volledig gekwalificeerde DNS-server van de computer waarop SQL Server wordt uitgevoerd met behulp van de WinSock API's toegang. Voor het uitvoeren van deze bewerking, roept de code stuurprogramma de gethostbyname en gethostbyaddr WinSock APIs. Zelfs als de naam van een IP-adres of een hostnaam wordt doorgegeven als de naam van de computer waarop SQL Server wordt uitgevoerd, probeert het stuurprogramma voor SQL Server op te lossen de volledig gekwalificeerde DNS-server van de computer als de computer van geïntegreerde beveiliging gebruikmaakt. Wanneer de SQL Server-stuurprogramma op de client wordt opgelost met de volledig gekwalificeerde DNS-server van de computer waarop SQL Server wordt uitgevoerd, wordt de bijbehorende DNS-server gebruiken om de SPN voor deze computer. Daarom mogelijk problemen over hoe de naam van de IP-adres of de hostnaam herleid tot de volledig gekwalificeerde DNS-server door WinSock wordt de SQL Server-stuurprogramma voor het maken van een ongeldige SPN-naam voor de computer waarop SQL Server wordt uitgevoerd. Bijvoorbeeld de ongeldige SPN's die de client-side SQL Server-stuurprogramma kan opgelost volledig gekwalificeerde DNS als volgt zijn:

  • MSSQLSvc/SQLSERVER1:1433

  • MSSQLSvc/123.123.123.123:1433

  • MSSQLSvc/SQLSERVER1.antartica.corp.mycompany.com:1433

  • MSSQLSvc/SQLSERVER1.dns.northamerica.corp.mycompany.com:1433

Wanneer het stuurprogramma voor SQL Server een SPN-naam die niet geldig is vormt, wordt verificatie nog steeds werkt omdat de SSPI-interface wordt geprobeerd de SPN in de adreslijstservice Active Directory opzoeken en de SPN niet vindt. Als de SSPI-interface de SPN niet gevonden, wordt Kerberos-verificatie niet uitgevoerd. Op dat moment de SSPI-laag wordt overgeschakeld naar de modus van een NTLM-verificatie en de aanmelding wordt NTLM-verificatie gebruikt en meestal lukt. Als het stuurprogramma voor SQL Server een SPN-naam die geldig is, maar is niet toegewezen aan de container vormt, probeert te gebruiken, de SPN maar niet. Dit veroorzaakt een foutbericht 'Kan geen SSPI-context genereren'. Als de opstartaccount voor SQL Server een lokale systeemaccount is, wordt de container de naam van de computer. De container is voor account, de opstartaccount voor SQL Server. Omdat de verificatie wilt gebruiken, de eerste SPN die worden aangetroffen, zorg dat er geen SPN's toegewezen aan containers onjuist zijn. Met andere woorden, moet elke SPN worden toegewezen aan slechts één container. De belangrijkste factor waardoor de Kerberos-verificatie succesvol is de geldige DNS-functionaliteit op het netwerk. U kunt deze functionaliteit op de client en de server controleren met behulp van het opdrachtregelprogramma Ping. Voer de volgende opdracht om het IP-adres van de server waarop SQL Server (de naam van de computer waarop SQL Server is SQLServer1) op de clientcomputer:

ping- sqlserver1 Om te zien of de volledig gekwalificeerde DNS-SQLServer1 wordt opgelost door de opdracht ping, moet u de volgende opdracht uitvoeren:

-een IP-adres pingen Bijvoorbeeld: C:\>ping SQLSERVER1 Pinging SQLSERVER1 [123.123.123.123] with 32 bytes of data: Reply from 123.123.123.123: bytes=32 time<10ms TTL=128 Reply from 123.123.123.123: bytes=32 time<10ms TTL=128 Reply from 123.123.123.123: bytes=32 time<10ms TTL=128 Reply from 123.123.123.123: bytes=32 time<10ms TTL=128 Ping statistics for 123.123.123.123: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 0ms, Average = 0ms C:\>ping -a 123.123.123.123 Pinging SQLSERVER1.northamerica.corp.mycompany.com [123.123.123.123] with 32 bytes of data: Reply from 123.123.123.123: bytes=32 time<10ms TTL=128 Reply from 123.123.123.123: bytes=32 time<10ms TTL=128 Reply from 123.123.123.123: bytes=32 time<10ms TTL=128 Reply from 123.123.123.123: bytes=32 time<10ms TTL=128 Ping statistics for 123.123.123.123: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 0ms, Average = 0ms C:\> Als de opdracht ping een IP-adres wordt omgezet in de juiste volledig gekwalificeerde DNS-server van de computer waarop SQL Server wordt uitgevoerd, is de resolutie van de client-side ook geslaagd.

SQL Server-SPN maken Dit is een van de belangrijke onderdelen van Kerberos-verificatie en SQL Server-interactie. Met SQL Server, kunt u de SQL Server-service onder een van de volgende uitvoeren: een LocalSystem-account, een lokale gebruikersaccount of een domeingebruikersaccount. Wanneer het exemplaar van SQL Server-service wordt gestart, wordt er geprobeerd een eigen SPN registreren in Active Directory met behulp van de DsWriteAccountSpn API-aanroep. Als de aanroep mislukt, de volgende waarschuwing weergegeven in Logboeken wordt vastgelegd: Ga naar de volgende Microsoft-website voor meer informatie over de functie DsWriteAccountSpn :

http://msdn2.microsoft.com/library/ms676056.aspx

Vereenvoudigde uitleg Als u de SQL Server-service onder de LocalSystem-account wordt uitgevoerd, wordt de SPN wordt automatisch geregistreerd en Kerberos-verificatie correct communiceert met de computer waarop SQL Server wordt uitgevoerd. Echter, als u de SQL Server-service onder een domeinaccount of een lokale account uitvoert, mislukt de poging voor het maken van de SPN in de meeste gevallen omdat de domeinaccount en de lokale account niet het recht hebben om hun eigen SPN's instellen. Wanneer het maken van de SPN niet gelukt is, betekent dit geen SPN is ingesteld voor de computer waarop SQL Server wordt uitgevoerd. Als u met behulp van een beheerdersaccount voor domein als de SQL Server-serviceaccount testen, is de SPN gemaakt omdat de domeinreferenties beheerdersrechten die zijn nodig voor het maken van een SPN-naam aanwezig zijn. Omdat u mogelijk niet een domeinbeheerdersaccount voor het uitvoeren van de service SQL Server (om te voorkomen dat risico), kan de computer waarop SQL Server wordt een eigen SPN niet maken. Daarom moet u een SPN handmatig maken voor de computer waarop SQL Server wordt uitgevoerd als u Kerberos-verificatie te gebruiken wanneer u verbinding maakt met een computer waarop SQL Server wordt uitgevoerd. Dit is het geval als u SQL Server wordt uitgevoerd onder een domeingebruikersaccount of een lokale gebruikersaccount. De SPN u maakt moet worden toegewezen aan de serviceaccount van SQL Server-service op die specifieke computer. De SPN kan niet worden toegewezen aan de computercontainer als de computer waarop SQL Server wordt gestart met de lokale systeemaccount. Moet er slechts één SPN en deze moet worden toegewezen aan de desbetreffende container. Normaal gesproken, dit is de huidige SQL Server-serviceaccount, maar dit is de container computer account met de account lokaal systeem.

 

In deze sectie worden de stappen om ervoor te zorgen dat uw computer heeft geen SSPI problemen ondervinden.

Controleer of het domein Controleer of het domein waarbij u zich aanmeldt, kan communiceren met het domein waartoe de computer waarop SQL Server behoort. Ook moet er juiste naamomzetting in het domein.

  1. U moet ervoor zorgen dat u bij Windows aanmelden kunt met behulp van dezelfde domeinaccount en hetzelfde wachtwoord als de opstartaccount voor de SQL Server-service. De SSPI-fout kan bijvoorbeeld optreden in een van de volgende situaties:

    • De domeinaccount is vergrendeld.

    • Het wachtwoord van de account is gewijzigd. Echter, u nooit opnieuw de SQL Server-service nadat het wachtwoord is gewijzigd.

  2. Als het aanmeldingsdomein van het domein van de computer waarop SQL Server wordt uitgevoerd verschilt, controleert u de vertrouwensrelatie tussen de domeinen.

  3. Controleer of het domein waartoe de server behoort en de domeinaccount die u gebruikt om verbinding te maken in hetzelfde forest zijn. Dit is vereist voor SSPI werken.

  4. Gebruik de Account wordt vertrouwd voor overdracht optie in Active Directory: gebruikers en Computers wanneer u start met SQL Server. Opmerking De ' Account wordt vertrouwd voor overdracht ' rechts is vereist alleen query's (query's de gekoppelde server) die gebruikmaken van Windows-verificatie wanneer u delegeert referenties van de doel-SQL server met een externe SQL server een dubbele hop scenario zoals verdeeld.

  5. Manipulate Service Principal Names voor Accounts (SetSPN.exe) hulpprogramma in de Windows 2000 Resource Kit gebruiken. Administrator-accounts voor Windows 2000-domein of Windows Server 2003-domein administrator-accounts kunnen u het hulpprogramma gebruiken om de SPN die is toegewezen aan een service en een account. Voor SQL Server, moet er slechts één SPN. De SPN moet worden toegewezen aan de container, de huidige SQL Server-serviceaccount in de meeste gevallen en de computeraccount wanneer SQL Server wordt gestart met de lokale systeemaccount. Als u SQL Server aangemeld met de account LocalSystem start, wordt de SPN automatisch ingesteld. Echter, als u een domeinaccount gebruikt SQL Server te starten of als u de account die wordt gebruikt voor het starten van de SQL-Server wijzigt, u SetSPN.exe uitvoeren moet verwijderen verlopen SPN's en vervolgens moet u een geldige SPN toevoegen. Zie het onderwerp 'Security Account Delegation' in SQL Server 2000 Books Online voor meer informatie. Ga hiervoor naar de volgende Microsoft-website:

    http://msdn2.microsoft.com/library/aa905162(SQL.80).aspx Voor meer informatie over de Windows 2000 Resource Kits, gaat u naar de volgende Microsoft-website:

    http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/default.mspx?mfr=true

  6. Controleer of naamomzetting correct plaatsvindt. Naamomzetting omvatten dergelijke methoden DNS, WINS, Hosts-bestanden en Lmhosts-bestanden. Voor meer informatie over problemen met de naamomzetting en het oplossen van problemen, klikt u op het volgende artikel in de Microsoft Knowledge Base:

    169790 het eenvoudige TCP/IP-problemen oplossen

  7. Voor meer informatie over het oplossen van problemen met toegankelijkheid en firewall problemen met Active Directory, klikt u op de volgende artikelnummers om de artikelen in de Microsoft Knowledge Base:

    291382 Veelgestelde vragen over Windows 2000 DNS en Windows Server 2003 DNS

    224196 replicatieverkeer voor Active Directory beperken en RPC-verkeer van client naar een specifieke poort

SPN's dynamisch maken voor de SQL Server-exemplaren van de SQL Server-service configureren Configureren van de SQL Server-service om SPN's dynamisch maken, moet u de instellingen voor toegangsbeheer van de account in de Active Directory-service wijzigen. U moet de machtigingen 'ServicePrincipalName lezen' en "ServicePrincipalName schrijven" voor de SQL Server-serviceaccount op te geven. Waarschuwing Als u de module Active Directory Service Interfaces (ADSI) bewerken, het hulpprogramma LDP of een andere LDAP versie 3-clients en u onjuiste wijzigingen in kenmerken van Active Directory-objecten, kunt u ernstige problemen veroorzaken. Mogelijk moet u Windows Server 2003, Microsoft Windows 2000 Server, Microsoft Exchange Server 2003, Microsoft Exchange 2000 Server of zowel Windows als Exchange opnieuw. We kunnen niet garanderen dat problemen die worden veroorzaakt door het onjuist wijzigen van de kenmerken van Active Directory-objecten opgelost worden kunnen. Wijzig deze kenmerken voor uw eigen risico. Opmerking Verlenen de juiste machtigingen en gebruikersrechten voor de opstartaccount voor SQL Server, moet u zijn aangemeld als domeinbeheerder of vraagt u de beheerder van het domein voor deze taak. Voor het configureren van de SQL Server-service SPN's dynamisch maken, gaat u als volgt te werk:

  1. Klik op Start, klik op uitvoeren, typ Adsiedit.mscen klik vervolgens op OK.

  2. Vouw in de ADSI Edit-module, domein [domeinnaam]uit, vouw DC = RootDomainName, vouw CN = gebruikers, met de rechtermuisknop op CN = accountnaam, en klik vervolgens op Eigenschappen. Notities

    • Domeinnaam is een tijdelijke aanduiding voor de naam van het domein.

    • RootDomainName is een tijdelijke aanduiding voor de naam van het hoofddomein.

    • Accountnaam is een tijdelijke aanduiding voor de account die u opgeeft als de SQL Server-service wilt starten.

    • Als u de account lokaal systeem om de SQL Server-service te starten, is de accountnaam een tijdelijke aanduiding voor de account waarmee u zich aanmeldt bij Microsoft Windows.

    • Als u een domeingebruikersaccount als de SQL Server-service wilt starten, wordt de accountnaam een tijdelijke aanduiding voor de domeingebruikersaccount.

  3. In de CN = accountnaam eigenschappen dialoogvenster op het tabblad beveiliging .

  4. Klik op het tabblad beveiliging op Geavanceerd.

  5. Zorg dat zelf wordt vermeld onder machtigingsvermeldingenin het dialoogvenster Geavanceerde beveiligingsinstellingen . Als zelf niet wordt vermeld, klikt u op toevoegenen voeg vervolgens zelf.

  6. Klik op SELFonder machtigingsvermeldingen, en klik vervolgens op bewerken.

  7. Klik op het tabblad Eigenschappen in het dialoogvenster Machtigingsvermelding .

  8. Klik op Dit object alleen in de lijst toepassen op op het tabblad Eigenschappen en zorg ervoor dat de selectievakjes uit voor de volgende machtigingen zijn geselecteerd onder machtigingen:

    • Kenmerk servicePrincipalName

    • ServicePrincipalName schrijven

  9. Klik driemaal op OK en sluit de module ADSI bewerken.

Neem contact op met productondersteuning voor Active Directory voor hulp bij dit proces, en in dit Microsoft Knowledge Base-artikel wordt vermeld. Belangrijk Het is raadzaam verlenen WriteServicePrincipalName geen recht op de SQL-account wanneer de volgende voorwaarden voldaan wordt:

  • Er zijn meerdere domeincontrollers.

  • SQL Server is gegroepeerd.

In dit scenario kan de SPN voor de SQL-Server worden verwijderd vanwege latentie bij Active Directory-replicatie. Hierdoor kunnen problemen met het exemplaar van SQL Server. Stel dat u de volgende opties hebt:

  • Een virtuele SQL-exemplaar met de naam Sqlcluster met twee knooppunten: knooppunt A en knooppunt B.

  • Knooppunt A wordt geverifieerd door de domeincontroller A en B-knooppunt wordt geverifieerd door de domeincontroller B.

Het volgende doet zich voor:

  1. De Sqlcluster instantie actief is op een knooppunt en de SPN SQL in een domeincontroller geregistreerd tijdens het starten van...

  2. Het exemplaar van de Sqlcluster wordt overgenomen door knooppunt B wanneer knooppunt A normaal gesproken afgesloten wordt.

  3. De Sqlcluster instantie waarvan de SPN van de domeincontroller een tijdens het afsluiten op knooppunt A.

  4. De SPN wordt verwijderd uit een domeincontroller, maar de wijziging nog niet is gerepliceerd naar de domeincontroller B.

  5. Bij het starten op knooppunt B probeert het exemplaar Sqlcluster te registreren van de SQL SPN met domeincontroller B. De SPN bestaat sindsdien, nog steeds knooppunt B wordt de SPN niet geregistreerd.

  6. Een domeincontroller repliceert na enige tijd, het verwijderen van de SPN (uit stap 3) tot domeincontroller B als onderdeel van Active Directory-replicatie. Het eindresultaat is dat er geen geldige SPN voor de SQL-instantie in het domein bestaat en daarom ziet u de problemen met de verbinding met het exemplaar van de Sqlcluster.

Opmerking Dit probleem is opgelost in SQL Server 2012.

Controleer of de server-omgeving Controleer enkele elementaire instellingen op de computer waarop SQL Server is geïnstalleerd:

  1. Kerberos-verificatie wordt niet ondersteund op Windows 2000 gebaseerde computers met Windows Clustering tenzij u Service Pack 3 (of hoger) hebt toegepast op Windows 2000. Daarom kan gebruik van SSPI-verificatie op een geclusterd exemplaar van SQL Server mislukken. Voor meer informatie klikt u op het volgende artikel in de Microsoft Knowledge Base:

    235529 Kerberos-verificatie wordt ondersteund op Windows 2000 gebaseerde serverclusters

  2. Controleer of de server actief is Windows 2000 Service Pack 1 (SP1). Voor meer informatie over ondersteuning voor Kerberos-verificatie op Windows 2000-servers, klikt u op het volgende artikel in de Microsoft Knowledge Base:

    267588 'Kan geen SSPI-context genereren'-foutbericht wordt weergegeven wanneer u verbinding met SQL Server 2000 maakt

  3. Op een cluster, als de account die u gebruikt voor het starten van SQL Server, SQL Server Agent of volledige-tekstzoekacties services wijzigingen, zoals een nieuw wachtwoord voert u de stappen die worden beschreven in het volgende Microsoft Knowledge Base-artikel:

    239885 het wijzigen van serviceaccounts voor een geclusterde computer waarop SQL Server wordt uitgevoerd

  4. Controleer of de account die u gebruikt voor het starten van SQL Server de juiste machtigingen heeft. Zie het onderwerp 'Instelling van Windows Services Accounts' in SQL Server Books Online voor een gedetailleerde lijst met machtigingen voor deze account moet hebben als u een account die geen lid zijn van de lokale groep Administrators:

    http://msdn2.microsoft.com/library/aa176564(SQL.80).aspx

Controleer of de clientomgeving Controleer of de volgende op de client:

  1. Zorg ervoor dat NTLM Security Support Provider is correct geïnstalleerd en ingeschakeld op de client. Voor meer informatie klikt u op het volgende artikel in de Microsoft Knowledge Base:

    269541 foutbericht wanneer u verbinding met SQL Server maakt als de Windows NT LM Security Support Provider-registersleutel ontbreekt: 'kan geen SSPI-context genereren'

  2. Bepalen of u in cache opgeslagen referenties worden gebruikt. Als u met behulp van in cache opgeslagen referenties naar de client zijn aangemeld, meldt u zich af bij de computer en meld u vervolgens aan als u verbinding kunt maken met een domeincontroller om te voorkomen dat referenties uit de cache wordt gebruikt. Voor meer informatie over hoe u kunt bepalen of u werkt in de cache referenties opgeslagen, klikt u op het volgende artikel in de Microsoft Knowledge Base:

    242536 de gebruiker wordt niet gewaarschuwd wanneer aanmeldt met een domein in de cache referenties opgeslagen

  3. Controleer of de datums op de client en de server geldig zijn. Als de datums te ver uit elkaar, kunnen uw certificaten ongeldig worden geacht.

  4. SSPI gebruikt een bestand met de naam Security.dll aanwezig. Als een andere toepassing een bestand met deze naam installeert, kan het andere bestand kan worden gebruikt in plaats van de werkelijke SSPI-bestand. Voor meer informatie klikt u op het volgende artikel in de Microsoft Knowledge Base:

    253577 fout: 80004005 - SSPI-pakket kan niet worden geïnitialiseerd door MS ODBC SQL Server-stuurprogramma

  5. Als het besturingssysteem op de client Microsoft Windows 98 is, moet u het onderdeel Client voor Microsoft Networks installeren op de client. Voor meer informatie klikt u op het volgende artikel in de Microsoft Knowledge Base:

    267550 BUG: 'Bevestiging is mislukt' wanneer u verbinding maakt met een SQL-Server via TCP/IP

Controleer of het Clientnetwerkhulpprogramma De Client Network Utility (CNU) wordt geleverd met Microsoft Data Access Components (MDAC) en het configureren van verbindingen met computers waarop SQL Server wordt gebruikt. U kunt het hulpprogramma MDAC Cliconfg.exe CNU connectiviteit configureren:

  1. Op het tabblad Algemeen wordt de definitie van protocollen is afhankelijk van de versie van MDAC. Met eerdere versies van MDAC kunt u een 'standaard'-protocol. Op de meest recente versies van MDAC kunt u een of meer protocollen met een aan de bovenkant van de lijst wanneer u verbinding met SQL Server maakt. Omdat de SSPI geldt alleen voor TCP/IP, kunt u een ander protocol, zoals Named Pipes, om te voorkomen dat de fout.

  2. Controleer op het tabblad Alias in de CNU om te controleren of dat een alias is gedefinieerd voor de server waarmee u verbinding probeert te maken. Als een serveralias is gedefinieerd, Controleer de instellingen voor de manier waarop deze computer is geconfigureerd voor verbinding met SQL Server. U kunt dit controleren door het verwijderen van de server alias om te zien of het gedrag verandert.

  3. Als de server alias is niet gedefinieerd in de CNU, voegt u de alias voor de server waarmee u verbinding wilt maken. Wanneer u deze taak uitvoert, het protocol ook expliciet definiëren en eventueel het IP-adres en de poort te definiëren.

Een Service Principal-naam voor SQL Server handmatig instellen Voor meer informatie over het handmatig instellen van een Service Principal-naam voor SQL Server, klikt u op het volgende artikel in de Microsoft Knowledge Base:

319723 het gebruik van Kerberos-verificatie in SQL Server De SSPI Security Support Provider Interface () is de interface voor Microsoft Windows NT-beveiliging dat wordt gebruikt voor Kerberos-verificatie en het verificatieschema van NTLM Security Support Provider ondersteunt. Verificatie vindt plaats op het niveau van het besturingssysteem wanneer u zich aanmeldt bij een Windows-domein. Kerberos-verificatie is alleen beschikbaar op Windows 2000 gebaseerde computers met Kerberos-verificatie ingeschakeld en die gebruikmaken van Active Directory. SSPI wordt alleen gebruikt voor TCP/IP-verbindingen die worden gemaakt met behulp van Windows-verificatie. Windows-verificatie is ook bekend als vertrouwde verbindingen of geïntegreerde beveiliging. SSPI wordt niet gebruikt door Named Pipes of verbindingen met meerdere protocollen. Daarom kunt u het probleem voorkomen door clients die verbinding maken vanaf een ander protocol dan TCP/IP te configureren. Wanneer u een SQL Server-client probeert te gebruiken van geïntegreerde beveiliging via TCP/IP-sockets op een externe computer waarop SQL Server wordt uitgevoerd, de SQL Server client network-bibliotheek gebruikt de SSPI-API beveiliging overdracht. De netwerkclient voor SQL Server (Dbnetlib.dll) de functie AcquireCredentialsHandle aanroept en in "onderhandelen" voor de parameter pszPackage geeft. Daarmee geeft u de onderliggende beveiligingsprovider uit te voeren aan onderhandelen over de overdracht. Onderhandelen houdt in Kerberos of NTLM-verificatie op Windows gebaseerde computers proberen in deze context. Met andere woorden, Windows Kerberos-overdracht gebruiken als de computer waarop SQL Server een SPN is gekoppeld, juiste configuratie is. Anders gebruikt u Windows NTLM-overdracht. Opmerking Controleer of u niet een account met de naam "Systeem" een van de services van SQL Server (MSSQLServer, SQLServerAgent, MSSearch) te starten. Het sleutelwoord systeem kan conflicten veroorzaken met Key Distribution Center (KDC).

 

Als u de oorzaak van het probleem niet kunt verkrijgen met behulp van de stappen voor probleemoplossing in dit artikel, de volgende informatie te verzamelen en een transactieprobleem van Microsoft Customer Support (CSS). Voor een volledige lijst met telefoonnummers van Microsoft Customer Support en informatie over kosten van ondersteuning, gaat u naar de volgende Microsoft-website:

http://support.microsoft.com/contactus/?ws=support

  1. Genereer een rapport sqldiag van SQL Server. Zie het onderwerp 'hulpprogramma sqldiag' in SQL Server Books Online voor meer informatie.

  2. Vastleggen van een schermafdruk van de fout op de client.

  3. Open een opdrachtprompt op het knooppunt dat kan geen verbinding maken met SQL Server en typ de volgende opdracht:

    net start > started.txt Deze opdracht genereert u een bestand met de naam Started.txt in de map waar u de opdracht uitvoert.

  4. Sla de waarden voor de registersleutel onder de volgende registersleutel op de clientcomputer:

    HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\MSSQLSERVER\CLIENT\CONNECTTO

  5. Zoek de waarde van de volgende registersleutel voor elk knooppunt van het cluster in een geclusterde omgeving:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA\LMCompatibilityLevel

  6. Zie of de volgende registersleutel op elk clusterknooppunt server bestaat in een gegroepeerde omgeving:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTLMSsp

  7. De resultaten als u verbinding met SQL Server maakt met behulp van een Universal Naming Convention (UNC)-naam (of de SQL-netwerknaam op een cluster) vastleggen vanaf de client.

  8. Vastleggen van de resultaten als u de opdracht ping de computernaam (of de SQL-netwerknaam op een cluster) van de client.

  9. De naam van de gebruikersaccounts die u gebruikt voor het starten van een van de services van SQL Server (MSSQLServer, SQLServerAgent, MSSearch) opgeslagen.

  10. De medewerker moet u aangeven of SQL Server is geconfigureerd voor de gemengde verificatie of alleen Windows-verificatie.

  11. Zie of u verbinding met de computer waarop SQL Server wordt vanaf dezelfde client maken kunt met behulp van SQL Server-verificatie.

  12. Zie of u verbinding maken kunt met behulp van Named Pipes-protocol.

Verwijzingen Voor meer informatie over de manier waarop Kerberos-verificatie en SSPI security werkt, klikt u op de volgende artikelnummers om de artikelen in de Microsoft Knowledge Base:

Antwoorden op veelgestelde vragen van Kerberos-verificatie 266080

231789 lokale aanmeldingsprocedure voor Windows 2000

304161 SSPI wederzijdse verificatie wordt aangegeven op de client, maar niet op de server

232179 Kerberos-beheer in Windows 2000

230476 beschrijving van veelvoorkomende fouten met betrekking tot Kerberos in Windows 2000

262177 het Kerberos-logboekregistratie inschakelen

277658 Setspn mislukt als domeinnaam verschilt van de NetBIOS-naam waar SQL Server-SPN is geregistreerd

Het 244474 om Kerberos om TCP te gebruiken in plaats van UDP in Windows Server 2003, Windows XP en Windows 2000 Een technisch document over Microsoft SQL Server 2000 security Ga naar de volgende Microsoft-website:

http://technet.microsoft.com/cc984178.aspx

Meer hulp nodig?

Uw vaardigheden uitbreiden
Training verkennen
Als eerste nieuwe functies krijgen
Deelnemen aan Microsoft insiders

Was deze informatie nuttig?

Hoe tevreden bent u met de vertaalkwaliteit?

Wat heeft uw ervaring beïnvloed?

Hebt u aanvullende feedback? (Optioneel)

Bedankt voor uw feedback.

×