I removed some 'security' settings that Microsoft had recommended which had
prevented Named Pipe connections to our Microsoft SQL server.  Basically
requiring everyone to use TCPIP connections.  Which is very simple when
using a sYstem DSN or ADODB or any number of ASP connection types.  But the
latest version of PHP 4.2.1 seems to have a bug in mssql.connect where it
DOES NOT use TCPIP connection, it for some reason always wants to use Named
Pipes, even when you use a FQDN,1433 which should force it to use TCPIP.  I
don't know why, and since PHP is free, there really isn't a single company
in charge of fixing such a problem.

Registry settings set back to:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA]
"RestrictAnonymous"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanManServer\Parameter
s]
"RestrictNullSessAccess"=dword:00000000

The following Registry Settings on SQL 2000 server caused PHP 4.2.1
mssql.connect to fail a connection even though ASP pages and ODBC.connect
using a system DSN configured to use TCPIP had no problem

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA]
"RestrictAnonymous"=dword:00000002

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanManServer\Parameter
s]
"RestrictNullSessAccess"=dword:00000001

Microsoft recommends these two settings for security purposes.  I do not
know why mssql_connect doesn't like those set on the SQL server.  In theory
putting ,1433 at the end of the servername should force mssql to use a tcpip
connection, but it doesn't when passed thru IIS 5.0.  If I ran the php
script in a dos prompt under an admin account from the IIS system, it had no
problem, but when under the IUSR account, it could not make the connection
and would error with the trust issue.





-- 
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to