PHP:使用域用户和密码连接到MS SQL Server

时间:2014-01-14 15:49:21

标签: php sql-server wamp

我有WAMP并且正在尝试通过使用以下PHP命令输入域用户和密码来连接到我的SQL Server 2008数据库:

$serverName = "MySQLServer\Instance"; //serverName\instanceName
$connectionInfo = array( "Database"=>"dbName", 
                         "UID"=>"myADUserName", "PWD"=>"MyPassword");
$conn = sqlsrv_connect( $serverName, $connectionInfo);

据我了解,它正在尝试使用SQL Server创建的用户而不是Active Directory进行身份验证,因此我收到以下错误消息:

Array ( [0] => 
   Array ( [0] => 28000 [SQLSTATE] => 28000 
           [1] => 18456 [code] => 18456 
           [2] => [Microsoft][SQL Server Native Client 10.0]
                  [SQL Server]Login failed for user 'myADUserName'. 
                  [message] => [Microsoft]
                      [SQL Server Native Client 10.0]
                      [SQL Server]Login failed for user 'myADUserName'.  
         ) 
        [1] => 
   Array ( [0] => 28000 [SQLSTATE] => 28000 
           [1] => 18456 [code] => 18456 
           [2] => [Microsoft][SQL Server Native Client 10.0]
                  [SQL Server]Login failed for user 'myADUserName'. 
                  [message] => [Microsoft]
                      [SQL Server Native Client 10.0]
                      [SQL Server]Login failed for user 'myADUserName'. 
         ) 
     )

这是否可以在PHP中使用WAMP?

我已经读过将wampapache服务中的登录帐户更改为myADUserName,但是用户在服务器上没有访问权限管理员权限以允许此操作,我不想将一个帐户绑定到我的所有PHP应用

2 个答案:

答案 0 :(得分:1)

分配"UID"=>"myADUserName", "PWD"=>"MyPassword"时,您使用的是sql身份验证,而不是Windows身份验证。 但您可以在sql-server as sql-login -> SQL Server Authentication

中创建该用户/密码组合

如果您想使用windows authentication,则无需指定uid和pwd。身份验证来自正在运行的apache进程。诅咒,一个人需要进入该帐户。

请参阅Microsoft documentation

  

备注如果未在中指定UID和PWD键的值   可选的$ connectionInfo参数,将尝试连接   使用Windows身份验证。有关连接的更多信息   服务器,请参见如何:使用Windows Authentication和如何连接   to:使用SQL Server Authentication连接。

答案 1 :(得分:0)

看起来很奇怪,但这个对我有用,

$dbName='dB-Name';
$dbUser='User1';
$dbPass='B4X345ZXsaoi0omkLH';

 $connectionInfo = array( "Database"=>$dbName, "UID"=>$dbUser, "PWD"=>$dbPass);

如果您使用的是SQLSERVER,这将不适用于PHP 5.5(我使用的是这个版本没有测试任何其他版本)

$connectionInfo = array( "Database"=>"DBName", "UID"=>"User1", "PWD"=>"B4X345ZXsaoi0kLH");