Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

PHP 5.3 não reconhece o Native Client para se conectar ao MS SQL


Acabou sendo um problema de permissão.

Mudei no php.ini a opção fastcgi.impersonate para 0 e tentei com diferentes identidades de pool de aplicativos. Funcionou como Sistema Local. Esta é uma conta com mais direitos de usuário do que a conta do Serviço de Rede ou do Serviço Local. No entanto, lembre-se de que executar um pool de aplicativos em uma conta com direitos de usuário aumentados apresenta um alto risco de segurança. Para mais referências sobre as contas e como configurar confira estes artigos:

Configurando Identidade do pool de aplicativos com IIS 6.0 (IIS 6.0) Contas de usuário de serviço Segurança do serviço e direitos de acesso

Decidi defini-lo de volta para o Network Service e baixei o Process Monitor *. Em seguida, usei-o para monitorar o processo w3wp, que me mostrou que isso estava obtendo acesso negado em uma chave de registro onde o caminho para sqlncli.dll está armazenado.

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

Então eu abri o RegEdit e localizei essa chave

Cliquei com o botão direito do mouse -> Permissões e adicionei o Serviço de rede à lista e dei permissões de leitura.

Reciclei o pool de aplicativos e agora está funcionando!

Espero que isso ajude!Federico

*Há um artigo passo a passo muito bom sobre como usar o monitor de processo aqui.

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