Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

PHP 5.3 non riconosce Native Client per la connessione a MS SQL

Si è rivelato essere un problema di autorizzazione.

Ho cambiato in php.ini l'opzione fastcgi.impersonate su 0 e ho provato con identità di pool di applicazioni diverse. Funzionava come sistema locale. Questo è un account con più diritti utente rispetto all'account Servizio di rete o Servizio locale. Tuttavia, tieni presente che l'esecuzione di un pool di applicazioni con un account con diritti utente maggiori presenta un rischio elevato per la sicurezza. Per ulteriori riferimenti sugli account e su come configurare, dai un'occhiata a questi articoli:

Configurazione Identità del pool di applicazioni con IIS 6.0 (IIS 6.0) Account utente di servizio Sicurezza del servizio e diritti di accesso

Ho deciso di reimpostarlo su Servizio di rete e ho scaricato Process Monitor *. L'ho quindi utilizzato per monitorare il processo w3wp, che mi ha mostrato che l'accesso veniva negato su una chiave di registro in cui è archiviato il percorso di sqlncli.dll.

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

Quindi ho aperto RegEdit e ho individuato quella chiave

Ho fatto clic con il pulsante destro del mouse su -> Autorizzazioni e ho aggiunto il servizio di rete all'elenco e gli ho concesso le autorizzazioni di lettura.

Riciclato il pool di app e ora funziona!

Spero che questo aiuti!Federico

*C'è un ottimo articolo passo dopo passo su come usare Process Monitor qui.

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