Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

PHP 5.3 nie rozpoznaje klienta natywnego do połączenia z MS SQL

Okazało się, że był to problem z pozwoleniem.

Zmieniłem w php.ini opcję fastcgi.impersonate na 0 i próbowałem z różnymi tożsamościami puli aplikacji. Działał jako system lokalny. Jest to konto z większą liczbą praw użytkownika niż konto Usługa sieciowa lub Usługa lokalna. Należy jednak pamiętać, że uruchamianie puli aplikacji na koncie o zwiększonych prawach użytkownika stanowi duże zagrożenie bezpieczeństwa. Więcej informacji na temat kont i konfiguracji znajdziesz w tych artykułach:

Konfiguracja Tożsamość puli aplikacji z usługami IIS 6.0 (IIS 6.0) Konta użytkowników usługi Bezpieczeństwo usług i prawa dostępu

Postanowiłem ustawić go z powrotem na Network Service i pobrałem Process Monitor *. Następnie użyłem go do monitorowania procesu w3wp, który pokazał mi, że odmówiono dostępu do klucza rejestru, w którym przechowywana jest ścieżka do pliku sqlncli.dll.

HKLM\Software\ODBC\ODBCINST.INI\SQL Native Client 10.0

Więc otworzyłem RegEdit i znalazłem ten klucz

Kliknąłem prawym przyciskiem myszy -> Uprawnienia i dodałem usługę sieciową do listy i nadałem jej uprawnienia do odczytu.

Przetworzono pulę aplikacji i teraz działa!

Mam nadzieję, że to pomoże! Federico

*Jest tutaj bardzo dobry artykuł krok po kroku na temat korzystania z monitora procesów.

http://www.iislogs.com/articles/processmonitorw3wp/



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zrobić wiele sprzężeń wewnętrznych w Linq to Entities?

  2. Co to jest przekazywanie parametrów do SQL i dlaczego go potrzebuję?

  3. Lista wszystkich indeksów i kolumn indeksów w bazie danych SQL Server

  4. Plusy i minusy używania SqlCommand Prepare w C#?

  5. 3 sposoby na uzyskanie języka bieżącej sesji w SQL Server (T-SQL)