Frage von TechnoObi, 68

MsSQL zugriff nicht möglich. Was könnte der Fehler sein?

Hallo,

ich arbeite momentan an einer Webseite, welche auf einen MsSQL Datenbank zugreifen soll. Lokal funktioniert auch alles wunderbar, doch auf meinem Windowsserver nicht so wirklich. Ich kann zwar meine PHP Webseite, welche über IIS läuft, aufrufen, doch die Seite kann nicht auf die Datenbank zugreifen. Nun stell ich mir die Frage, was der Fehler sein könnte. Ich logge mich über den Windows Benutzer ein und bekomme auf der Seite folgenden Fehler:

"Array ( [0] => Array ( [0] => 28000 [SQLSTATE] => 28000 [1] => 18456 [code] => 18456 [2] => [Microsoft][ODBC Driver 11 for SQL Server][SQL Server]Fehler bei der Anmeldung f�r den Benutzer 'NT-AUTORIT�T\Lokaler Dienst'. [message] => [Microsoft][ODBC Driver 11 for SQL Server][SQL Server]Fehler bei der Anmeldung f�r den Benutzer 'NT-AUTORIT�T\Lokaler Dienst'. ) [1] => Array ( [0] => 28000 [SQLSTATE] => 28000 [1] => 18456 [code] => 18456 [2] => [Microsoft][ODBC Driver 11 for SQL Server][SQL Server]Fehler bei der Anmeldung f�r den Benutzer 'NT-AUTORIT�T\Lokaler Dienst'. [message] => [Microsoft][ODBC Driver 11 for SQL Server][SQL Server]Fehler bei der Anmeldung f�r den Benutzer 'NT-AUTORIT�T\Lokaler Dienst'. ) )"

Weiß jemand vielleicht, was es sein könnte?

Danke und Liebe Grüße!

Antwort
von WhiteGandalf, 63

Also: In der Frage steht (ich zitiere):

"Ich logge mich über den Windows Benutzer ein"

Das hört sich mitnichten an wie:

"Ich logge mich über das Konto des 'lokalen Dienstes' ein"

Gelle?!

Also: WAS für ein Konto ist denn dieser ominöse "Windows Benutzer", von dem Du in der Fragestellung redest? Wie heißt denn dessen Konto? Wieso überhaupt versucht ein "lokaler Dienst", auf den SQL-Server zuzugreifen? Sollte das nicht der Webserver-Prozess machen? Wieso läuft der als "lokaler Dienst"? Er hat damit ein Rechteniveau, das einem Angreifer aus dem Internet ziemlich trivial gestattet, Deinen Rechner komplett abzuschießen oder zu übernehmen, sollte sich irgendwo irgendein Einfallstor finden lassen.

Andererseits: Für einen reinen Entwicklungsrechner ist das egal. In dem Fall brauchst Du also nur sicherstellen, dass es im SQL-Server auch eine Benutzeranmeldung für jenen "lokalen Dienst" gibt, die da offensichtlich nicht existiert. Schau mal mit phpmyadmin oder so rein, was da anliegt!

Kommentar von TechnoObi ,

Erst einmal danke für die Antwort! Das Problem ist, dass ich nicht auf PhPMyAdmin zugreifen kann, da ich IIS benutze.

Und mit Windows Benutzer meine ich, dass ich mich nicht mit einem SQL Benutzer einlogge, sondern über die Windows Authentifizierung. Lokal auf meinem PC funktioniert das auch...

Und wie kann das der Webserverprozess machen? Weiß nicht wirklich wie.

Kommentar von WhiteGandalf ,

Ja, nun, das hört sich ganz klar danach an, dass Du Dich mit DEINEM Benutzerkonto auf dem SQL-Server einloggst. NICHT mit dem Benutzerkonto "local service". Ich gehe mal ne Wette ein, dass es ein Konto für "local service" auf dem SQL-Server gar nicht gibt.

Mache Dich mal mit Benutzerverwaltung vertraut - entweder der von Deinem SQL-Server, wozu gehören würde, ein phpmyadmin einzurichten. Warum sollte es PHP auf IIS nicht geben? Eventuell ist auf Deinem IIS noch kein PHP eingerichtet. Dann hole das nach! Danach funktioniert auch phpmyadmin, um vom IIS aus den SQL-Server zu verwalten.

Oder sieh Dir die Benutzerverwaltung von Windows genauer an! JEDER Service und JEDES Programm werden unter einem Benutzerkonto gestartet. Bei JEDEM kann man das ändern: Für Services in der Diensteverwaltung - unter dem Karteireiter "Anmelden" (oder wie auch immer die Marketingstrategen von Microsoft das Zeug in der gerade aktuellen Version missnannt haben) - und für Programme durch Rechtsklick und "starten als" (zumindest bis Windows XP funktionierte das 20 Jahre lang prächtig; wie das von den Microsoftlern inzwischen vermurkst wurde, steht auf einem anderen Blatt). Du kannst den IIS unter DEINEM Benutzerkonto laufen lassen. DANN meldet der sich bei seinem SQL-Server auch unter DIESEM DEINEM Benutzerkonto an.

Oder Du fährst noch eine ganz andere Strategie und richtest XAMPP ein. Schaltest den IIS dafür ab. Der XAMPP enthält alles aus dem FF ohne einen einzigen Klick zum Einrichten machen zu müssen. Einschließlich Apache, PHP, MySQL, PHPMyAdmin. Mit DEM funktioniert das IMMER - ich habe noch keine Azubis entdecken können, die das völlig ohne jedwede Kampferfahrung nicht aus dem Stehgreif hinbekommen hätten.

Antwort
von Wiggum34, 68

Steht doch klar und deutlich da. Der User local service hat kein Recht auf den SQL zuzugreifen.

Kommentar von TechnoObi ,

Ja, aber ich habe auch schon Versucht mich bei dem Dienst "SQL Server (MSSQLSERVER)"  mit einem anderen Benutzer anzumelden. Ging aber auch nicht. Oder mache ich etwas falsch?

Keine passende Antwort gefunden?

Fragen Sie die Community