Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Łączenie z zewnętrznym serwerem SQL Server 2005
Forum PHP.pl > Forum > Bazy danych > Microsoft SQL Server / MSDE
misiek95
Witam!

Mam dwa serwery:
1. Windows Web Server 2008 R2 z zainstalowanym IIS a w nim uwierzytelnianiem systemu Windows (tzw. zintegrowanym)
2. Windows Server 2008 R2 z zainstalowanym SQL Server 2005 (nie ma pozwolenia na instalację IIS)

Zlecono mi utworzenie połączenia z uwierzytelnianiem systemu Windows z witryny na IIS z serwera 1 do bazy SQL serwera 2 za pomocą PHP. Skrypt PHP może połączyć się z serwerem ale nie zalogować. Otrzymuję komunikat:
  1. Unable to connect.
  2. Array ( [0] => Array ( [0] => 28000 [SQLSTATE] => 28000 [1] => 18456 [code] => 18456 [2] => [Microsoft][SQL Server Native Client 10.0][SQL Server]Login failed for user 'ZARZĽDZANIE NT\LOGOWANIE ANONIMOWE'. [message] => [Microsoft][SQL Server Native Client 10.0][SQL Server]Login failed for user 'ZARZĽDZANIE NT\LOGOWANIE ANONIMOWE'. ) [1] => Array ( [0] => 28000 [SQLSTATE] => 28000 [1] => 18456 [code] => 18456 [2] => [Microsoft][SQL Server Native Client 10.0][SQL Server]Login failed for user 'ZARZĽDZANIE NT\LOGOWANIE ANONIMOWE'. [message] => [Microsoft][SQL Server Native Client 10.0][SQL Server]Login failed for user 'ZARZĽDZANIE NT\LOGOWANIE ANONIMOWE'. ) )


Skrypt wygląda tak:
  1. /* Specify the server and connection string attributes. */
  2. $serverName = "nazwa serwera 2";
  3. $connectionInfo = array( "Database"=>"test");
  4.  
  5. /* Connect using Windows Authentication. */
  6. $conn = sqlsrv_connect( $serverName, $connectionInfo);
  7. if( $conn === false )
  8. {
  9. echo "Unable to connect.</br>";
  10. die( print_r( sqlsrv_errors(), true));
  11. }
  12.  
  13. /* Query SQL Server for the login of the user accessing the
  14. database. */
  15. $tsql = "SELECT CONVERT(varchar(32), SUSER_SNAME())";
  16. $stmt = sqlsrv_query( $conn, $tsql);
  17. if( $stmt === false )
  18. {
  19. echo "Error in executing query.</br>";
  20. die( print_r( sqlsrv_errors(), true));
  21. }
  22.  
  23. /* Retrieve and display the results of the query. */
  24. $row = sqlsrv_fetch_array($stmt);
  25. echo "User login: ".$row[0]."</br>";
  26.  
  27. /* Free statement and connection resources. */
  28. sqlsrv_free_stmt( $stmt);
  29. sqlsrv_close( $conn);


Próbowałem łączyć się z serwera 1 do bazy lokalnej SQL Server 2005 - to działa, zwraca komunikat "(nazwa serwera)/(nazwa użytkownika)". Mogę również połączyć się z serwera 1 na serwer 2 za pomocą SQL Server Management Studio. Co mam więc zmienić/doinstalować, żeby zalogować się do SQL Server'a na serwerze 2?

Z góry dzięki za pomoc
prachwal
a komputery są w domenie?
jeżeli nie to hmm czarno to widzę, w tym przypadku login i hasło do SQL-a to lepsze rozwiązanie a następnie przełączanie kontekstu za pomocą roli aplikacji po stronie MSSQL-a
misiek95
Ok, zostawię uwierzytelnianie SQL Server. Dzięki za pomoc smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.