3

我正在尝试使用 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”

4

2 回答 2

7

啊啊问题解决了!我更改了我的 WAMP 服务的设置(在 Windows 中打开 service.msc)并确保该服务登录了正确的帐户。现在可以了。

于 2012-12-05T10:06:03.780 回答
0

该手册说,默认情况下,连接使用的是 Windows 身份验证,而不是 SQL Server 身份验证。

要绕过这一点,您需要在$connectionInfo数据中提供 uid 和 pwd 选项。

查看手册;

http://php.net/sqlsrv_connect

http://msdn.microsoft.com/en-us/library/ff628167.aspx

于 2012-12-05T09:53:14.490 回答