Încerc să mă conectez la MS-SQL Server de la PHP-8.0 (găzduire pe IIS-10 localhost) folosind SQL Server Driver pentru PHP, adică SQLSRV-5.9. În timp ce mă conectez de la o pagină PHP, dacă folosesc SQL Server Authentication, se conectează imediat. Dar în timp ce utilizați autentificarea Windows, se afișează o eroare în browser care spune:
Conexiunea nu a putut fi stabilită.
Array ( [0] => Array ( [0] => 28000 [SQLSTATE] => 28000 [1] => 18456 [cod] => 18456 [2] => [Microsoft][ODBC Driver 17 pentru SQL Server][ SQL Server]Autentificarea eșuată pentru utilizatorul „NT AUTHORITY\IUSR”. [mesaj] => [Microsoft][ODBC Driver 17 pentru SQL Server][SQL Server]Autentificarea eșuată pentru utilizatorul „NT AUTHORITY\IUSR”.) [1] => Array ( [0] => 28000 [SQLSTATE] => 28000 [1] => 18456 [cod] => 18456 [2] => [Microsoft][ODBC Driver 17 pentru SQL Server][SQL Server]Autentificarea eșuată pentru utilizatorul „NT AUTHORITY\IUSR”. [mesaj] => [Microsoft][ODBC Driver 17 pentru SQL Server][SQL Server]Autentificarea eșuată pentru utilizatorul „NT AUTHORITY\IUSR”. ) )
Mediul meu este Windows 10 Pro, versiunea 21H2, pe 64 de biți. În serverul meu SQL, atât Autentificarea Windows, cât și Autentificarea SQL Server sunt activate și mă pot conecta la server folosind ambele prin SQL Server Management Studio. Deci, ce oprește codul meu PHP să se conecteze la server folosind autentificarea Windows? Atât PHP, cât și SQL Server sunt pe același computer. ce fac greșit? Deoarece sunt nou în PHP, vă rog să-l clarificați cu un exemplu simplu?
Urmează codul meu connect-db.php. Observați cum am folosit șirul de conexiune atât pentru Windows, cât și pentru autentificarea SQL Server.
?php
$serverName = "(local)"; // Folosiți opțional numărul portului (1433 în mod implicit).
$connectionString = array("Bază de date"=>"TestDB"); // Șir de conexiune de autentificare Windows.
// $connectionString = array("UID"=>"sa","PWD"=>"sa","Baza de date"=>"TestDB"); // Șir de conexiune de autentificare SQL Server.
$conn = sqlsrv_connect($serverName, $connectionString); // Conectați-vă la server.
if($conn === false) {
echo „Conexiunea nu a putut fi stabilită.<br/>”;
die(print_r(sqlsrv_errors(), true));
} altfel {
echo „Conexiune stabilită cu succes.<br/>”;
}
sqlsrv_close($conn); // Închide resursele de conectare.
?>
Multumesc si Salutari!