PHP PHP/MsSQL: Kein Connect möglich: „Fehler bei der Anmeldung für Benutzer...“

Pascal_Peter

Ensign
Registriert
Feb. 2006
Beiträge
197
Hallo Zusammen

Ich habe ein Problem das ich nicht gebacken kriege. Habe in der Zwischenzeit schon 8 Stunden damit verbracht. Aber es will einfach nicht.

Ich habe in PHP und MySQL eine „Produkte Datenbank Anwendung“ geschrieben. Läuft auch alles wunderbar. Nun hat sich mein Chef eine Erweiterung gewünscht. Dazu muss ich aber noch zusätzlich auf einen anderen MsSQL Server verbinden und dort Infos aus 2 Tabellen abfragen und verarbeiten.

Das Problem ist nun das ich die Verbindung zum MsSQL Server 2005 nicht schaffe.
Ich erhalten folgende Fehlermeldung:
Fehlermelung mit mssql_connect():
PHP:
Warning: mssql_connect() [function.mssql-connect]: message: Fehler bei der Anmeldung für den Benutzer 'CHDIREG\ppe'. (severity 14) in D:\xampp\htdocs\CIDB_DEV\mssql.php on line 9
Warning: mssql_connect() [function.mssql-connect]: Unable to connect to server: 10.0.0.116\XEROXCWW in D:\xampp\htdocs\CIDB_DEV\mssql.php on line 9
Something went wrong while connecting to MSSQL

Fehlermeldung mit odbc_connect():
PHP:
Warning: odbc_connect() [function.odbc-connect]: SQL error: [Microsoft][ODBC SQL Server Driver][SQL Server]Fehler bei der Anmeldung für den Benutzer 'NT-AUTORITÄT\ANONYMOUS-ANMELDUNG'., SQL state 28000 in SQLConnect in D:\xampp\htdocs\CIDB_DEV\mssql.php on line 10
Something went wrong while connecting to MSSQL
Mssql.php:
PHP:
$server = '10.0.0.116\XEROXCWW';
// Connect to MSSQL
$link = mssql_connect($server, 'CHDIREG\ppe', 'xxxxxxxxxxxxxxxx');
//$link = odbc_connect("system_dns_name", "", "");

if (!$link) {
    die('Something went wrong while connecting to MSSQL');
}
Die Zwei Server:
Computer_1, Windows XP mit PHP, Apache und MySQL (XAMP instl.).
Computer_2, Windows XP mit SQL Server 2005.

Fakt:
Ich kann mich von meinem Arbeitsplatz aus mit NT-Windows-Login und Microsoft SQL Management Studio auf den SQL 2005 Server verbinden und so die DB anschauen. (Das war Schritt 1.)
Testweise habe ich auch eine ODBC Datenverbindung auf dem Web/DB Server eingerichtet (Ebenfalls NT-Windows-Login) zum MsSQL Server. Auch die Funktioniert, aber der odbc_coonect im PHP Script funktioniert nicht.
Ich habe MsSQL in der PHP.ini aktiviert. Wird auch als ENABLED angezeigt auf der PHP Info Seite.
Habe die NTWDBLIB.DLL überprüft -> ist aktuell.

Problem ist das ich kein SQL-Login für den SQL 2005 Server habe. Die Installation wurde direkt durch eine dritt-Anwendung gemacht. Ich kann also nur mit NT-Windows-Login verbinden.

Ich weiss echt nicht mehr weiter. Ich arbeite mich seit Stunden durch diverse Internet
Seiten (php.net etc.) mit Lösungsvorschlägen aber nichts hilft. Normal wird auch mit SQL-Login gearbeitet, denke darin liegt bei mir das Problem. Ich muss einen NT-Login machen.

Vielleicht finde ich hier noch jemanden der mir helfen kann. Das bereits mal geschafft hat oder sogar in dem Bereich arbeitet und mir Tipps geben kann. Versuche kann ich es ja mal.

PHP Version: 5.3.1

Apache: 2.2.14

MySQL Version: 5.1.41

MsSQL Version: SQL Server 2005

NTWDBLIB.DLL Version: 2000.80.194.0 (System32 und PHP-Verzeichnis auf Web/PHP Server).

PHP.ini:
extension=php_mssql.dll
; Use NT authentication when connecting to the server
mssql.secure_connection = Off <- Habe es mehrfach mit Off und On probiert, ohne erfolg. Muss hier Off oder On sein für NT-Authentication?


Schon mal vielen dank fürs zu ende lesen. Inputs und Ideen Willkommen.

Pascal
 
Also wenn ich das so lese... ich würde das probieren (kenne mich mit Mssql nicht aus).

$link = mssql_connect('10.0.0.116\XEROXCWW', 'ppe', 'xxxxxxxxxxxxxxxx');

Wenn das nicht geht, dann würd ich mal den Netzwerkverkehr mitlesen, ob überhaupt eine Authentifizierung stattfindet.

gruß
hostile
 
Hallo hostile

Vielen Dank für deinen Input.

Ich konnte das Problem zwischenzeitlich lösen. Wie vermutet war es ein Problem mit dem NT-Login.
Ich habe den SU vom SQL Server von der Dritt-Firma erhalten, nun konnte ich mir einen SQL-User (php) erstellen mit Read Berechtigung auf den beiden benötigten Tabellen.

Nun funktioniert der Connect wie gewünscht und ich habe testweise schonmal einen Datensatz ausgelesen. -> Funktioniert.

PHP:
// Server in the this format: <computer>\<instance name> or 
// <server>,<port> when using a non default port number

$server = '10.0.0.116\XEROXCWW';

// Connect to MSSQL
$link = mssql_connect($server, "php", "php_connect");
mssql_select_db('db',$link);

if (!$link) {
    die('Something went wrong while connecting to MSSQL');
}

$Query ="SELECT * FROM dbo.tblSoftware WHERE ComputerName = 55;";

$Result = mssql_query($Query);

$Array = mssql_fetch_assoc($Result);

echo "Array ist: ";
print_r($Array);

Also mit einem SQL-Login funktioniert es, NT-Windows-Login über PHP habe ich nicht zum laufen gebracht.
 
Zurück
Oben