我正在尝试使用Windows身份验证与我公司的MSSQL服务器建立连接,但它失败了,因为它试图将我的计算机名称用作登录而不是我的登录ID。使用MS SQL Server Management登录时,Windows身份验证可以正常工作,但不能使用此PHP代码:
<?php
// Server in the this format: <computer>\<instance name> or
// <server>,<port> when using a non default port number
$serverName = "xxx";
$connectionInfo = array( "Database"=>"xxx");
/* Connect using Windows Authentication. */
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn ) {
echo "Connection established.<br />";
}else{
echo "Connection could not be established.<br />";
die( print_r( sqlsrv_errors(), true));
}
//
?>
我得到的打印输出如下:
[Microsoft] [SQL Server Native Client 11.0] [SQL Server]登录失败 用户'xxx \ T2002197 $'。 ))
T2002197是我的电脑名称,不是我的登录ID,所以它当然失败了。我怎么解决这个问题?我正在使用WAMP。 编辑了一些信息,替换为'xxx'
答案 0 :(得分:7)
Aah问题解决了!我更改了WAMP服务的设置(在Windows中打开service.msc)并确保服务登录到正确的帐户。它现在有效。
答案 1 :(得分:0)
手册说默认情况下连接使用的是Windows身份验证,而不是SQL Server身份验证。
要绕过此问题,您需要在$connectionInfo
数据中提供uid和pwd选项。
查看手册;