2014-01-14 152 views
0

连接到MS SQL Server的我有WAMP,我试图通过输入域用户,并使用下面的PHP命令口令2008数据库连接到我的SQL Server:PHP:使用域用户名和密码

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

根据我的理解,它试图与SQL Server创建的用户,而不是从Active Directory进行身份验证,所以我收到以下错误消息:与WAMP

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?

我已阅读有关在wampapache服务中将帐户中的日志更改为myADUserName,但用户无权访问服务器上的管理员访问权限,因此我不想将一个帐户绑定到我的所有帐户PHP应用程序。

+0

你解决了你的问题吗? –

+0

不完全是我想要的,但我最终在Active Directory中创建了一个服务帐户,并将其分配给wampapache服务,以便它启动它。 – Rick

+0

但它是使用Windows身份验证的正确方法。 –

回答

1

当您指定"UID"=>"myADUserName", "PWD"=>"MyPassword"时,您正在使用sql-authentication而不是Windows身份验证。 但您可以将该用户/密码组合创建为sql-server as sql-login -> SQL Server Authentication

如果您要使用windows authentication,则不需要指定uid和pwd。身份验证取自正在运行的apache进程。诅咒,需要运行到该Windows帐户。

请参阅使用Windows身份验证Microsoft documentation

备注如果 可选$ connectionInfo参数未指定UID和PWD键的值,则连接将尝试 。有关连接到服务器 的详细信息,请参阅如何:使用Windows Authentication连接和如何连接:连接使用SQL Server Authentication

+0

当你想使用Windows身份验证时,你不需要指定uid和pwd。 +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");