SQL Server 2012 kann sich nicht mit dem Computerkonto anmelden


11

Wir migrieren eine IIS / SQL Server-Site von 2008 auf 2012 und haben ein Problem mit der Authentifizierung. Wir verwenden die Windows-Authentifizierung zur Authentifizierung als DOMAIN\COMPUTER$, aber dies funktioniert nicht und gibt einen Fehler aus, der besagt:

Anmeldung für Benutzer 'DOMAIN \ COMPUTER $' fehlgeschlagen. Grund: Es konnte kein Login gefunden werden, das dem angegebenen Namen entspricht. [CLIENT: <lokaler Computer>]

Ich habe überprüft, ob das Konto vorhanden ist, und es sogar gelöscht und neu erstellt

create login "DOMAIN\COMPUTER$" from windows

Wenn ich es noch einmal mache, bekomme ich die Antwort:

Meldung 15025, Ebene 16, Status 2, Zeile 1
Der Serverprinzipal 'DOMAIN \ COMPUTER $' ist bereits vorhanden.

( DOMAIN\COMPUTERersetzt die reale Domain und den Computernamen)

Es scheint also, dass die Site den SQL Server abfragt, aber der SQL Server prüft seine Anmeldungen nicht sehr genau.

Was habe ich vermisst?

Antworten:


6

Es ist höchstwahrscheinlich überhaupt nicht die DOMAIN \ computer $. Diese Nachricht ist als irreführend bekannt. Ich denke, alles, was es will, ist, dass "NT AUTHORITY \ NETWORK SERVICE" der Serverzugriff gewährt wird. Öffnen Sie die SQL Server-Anmeldeeigenschaften und fügen Sie dieses Konto hinzu. Überprüfen Sie außerdem, welcher Benutzer im IIS verwendet wird, um sich als anonymer Benutzer auszugeben. Dies sollte etwa "IUSR_ServerName" sein. Gewähren Sie auch diesem Benutzer Zugriff


1
"NT AUTHORITY \ NETWORK SERVICE" hat bereits Serverzugriff. IIS gibt sich als "IUSR" aus (kein _Servername). Soweit mir bekannt war, ist dies kein echtes Konto - und ich kann weder "DOMAIN \ IUSR" noch "DOMAIN \ IUSR" Zugriff gewähren, da diese Konten nicht existieren.
Alt

Dies funktionierte für mich für einen Windows-Dienst
user919426

Nach einem langen Morgen mit dem Assistenten zum Kopieren von Datenbanken und dem Assistenten zum Exportieren und Importieren von SQL ist dies die einzige Antwort, die dafür gesorgt hat, dass es funktioniert. Vielen Dank!
Zalakain

6

Sowohl @cha als auch @alt haben richtige Hinweise - die Fehlermeldung ist irreführend und Application Pool Identityinvolviert (zumindest in meinem Fall).

Wenn der Anwendungspool Ihrer IIS-App verwendet wird Application Pool Identity, müssen Sie das Benutzerkonto zu SQL Server hinzufügen IIS APPPOOL\your_app_pool_name. Hinweis: Verwenden Sie die Search...Schaltfläche in den Anmeldeeigenschaften nicht, um diesen Benutzer zu finden. Er findet ihn, ersetzt ihn jedoch, MACHINE_NAME\your_app_pool_nameder nicht funktioniert. Geben Sie einfach IIS APPPOOL\your_app_pool_nameden Anmeldenamen ein.


1
Dies funktioniert nur, wenn sich Ihr Webserver und Ihr SQL Server im selben Feld befinden.
Maxisam

1
Sicher, die Identitätskonten des App-Pools sind lokal auf dem AFAIK-Computer, sodass Sie sie nicht auf anderen Computern verwenden können. Verwenden Sie in diesem Fall einfach die SQL Server-Authentifizierung oder führen Sie die Webanwendung auf einem Domänenkonto aus.
Jakub Januszkiewicz

2

Dieses Problem sollte je nach Server-Setup unterschiedlich behandelt werden.

  1. SQL und IIS-Server befinden sich auf demselben Computer.

    ein. Ändern Sie die Anwendungspoolidentität inNetwork Service

    b. Fügen Sie AUTHORITY\NETWORK SERVICEIhrem SQL Server-Login NT hinzu

  2. SQL- und IIS-Server befinden sich auf unterschiedlichen Computern.

    ein. Fügen Sie DOMAIN\computer-name$Ihrem SQL Server-Login ein Computerkonto hinzu .

    b. Die Anwendungspoolidentität bleibt erhaltenApplication Pool Identity


1

Ich habe es geschafft, es zum Laufen zu bringen, indem ich die Site in IIS geändert habe, um die zu verwenden Application Pool Identity, und dann die Anwendungspoolidentität in geändert habe Network Service. Sie können sich jederzeit zu Sicherheitsproblemen äußern.


Warum nicht einen Domänenbenutzer für den App-Pool verwenden, da AD vorhanden ist, oder noch besser ein geändertes Dienstkonto?
Spörri

0

Ich habe den gleichen Fehler bekommen. Anmeldefehler: 18456, Schweregrad: 14, Status: 5. Durch Deaktivieren von CEIP über SQL Server-Fehler- und Verwendungsberichte wurde das Problem für mich behoben.


1
Könnten Sie Ihre Antwort etwas näher erläutern? Können Sie relevante Ressourcen zitieren? Ihre Antwort wurde aufgrund ihrer Länge und ihres Inhalts als minderwertig eingestuft und konnte daher gelöscht werden.
John aka hot2use
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.