Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

PHP 5.3 ne reconnaît pas Native Client pour se connecter à MS SQL

Il s'est avéré être un problème d'autorisation.

J'ai changé dans php.ini l'option fastcgi.impersonate à 0 et j'ai essayé avec différentes identités de pool d'applications. Cela a fonctionné comme système local. Il s'agit d'un compte avec plus de droits d'utilisateur que le compte Service réseau ou Service local. Cependant, n'oubliez pas que l'exécution d'un pool d'applications sous un compte avec des droits d'utilisateur accrus présente un risque de sécurité élevé. Pour plus de références sur les comptes et comment les configurer, consultez cet article :

Configuration Identité du pool d'applications avec IIS 6.0 (IIS 6.0) Comptes d'utilisateurs de service Sécurité des services et droits d'accès

J'ai décidé de le remettre sur Network Service et j'ai téléchargé Process Monitor *. Je l'ai ensuite utilisé pour surveiller le processus w3wp, qui m'a montré que l'accès était refusé sur une clé de registre où le chemin vers sqlncli.dll est stocké.

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

J'ai donc ouvert RegEdit et localisé cette clé

J'ai fait un clic droit -> Autorisations et j'ai ajouté le service réseau à la liste et lui ai donné les autorisations de lecture.

Le pool d'applications a été recyclé et il fonctionne maintenant !

J'espère que cela vous aidera !Federico

*Il y a un très bon article étape par étape sur la façon d'utiliser le moniteur de processus ici.

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