我有一台计算机A,它具有一个连接并在计算机B1中操作数据库的PHP程序。为了连接到MS SQL服务器,我使用了以下脚本,该脚本运行良好。这个SQL服务器上只有一个帐户,它是“sa”。用户'sa'登录失败
$server = 'WAREHOUSE1\MYDB';
$connectionInfo = array("UID" => "sa", "PWD" => "something", "Database"=>"MYDB");
$dbcMssql = sqlsrv_connect($server, $connectionInfo);
我们得到了一台新电脑,B2,因为它是又老又慢替换此计算机。我建立了新的数据库,并从B1中恢复它,像在B1中一样设置防火墙设置,选中了“允许远程连接”,并在MS SQL Server Management Studio中选择了“SQL Swrver和Windows身份验证模式”等。我是能够使用MS SQL Server Management Studio连接计算机A的计算机B1和B2上的数据库。我甚至使用相同的用户ID(“sa”)和密码将表格连接到MS Access(OBDC数据库)。
问题是,在新计算机上,B2,我的PHP脚本不再工作,即使我可以使用MS SQL程序连接到它。我不记得除了我在创建B1时已经做过的事情之外的其他事情。错误如下,从sqlsrv_errors()
。
[SQLSTATE] => 28000
[code] => 18456
[message] => [Microsoft][SQL Server Native Client 10.0][SQL Server]Login failed for user 'sa'.
没有登录由于某种原因,在出于某种原因服务器文件夹中的错误日志文件中的错误,所以我不知道的是什么状态错误是..可能是什么问题?我在整个下午阅读了几篇文章,但我无法完成这项工作!再一次,从A连接到B1很好,这让我相信我没有在B2上设置任何东西。 B1和B2具有相同版本的SQL服务器。
MYDB是实例名称还是数据库名称?另外,你不应该使用'sa'这个;创建一个新帐户。检查以确保数据库服务器接受混合模式身份验证每http://msdn.microsoft.com/en-us/library/ms144284.aspx – 2012-01-04 23:22:57
我打赌$ 100,'sa'的密码是...'sa' ;) – Jakub 2012-01-04 23:37:15
@Jeremy Holovacs:MYBD是实例名称和数据库名称(它们是不是一样的东西?)。我检查了你的链接,但是Win7 Home没有secpol.msc ..但是,在SQL服务器上设置混合身份验证模式是不够的,但是,正如我在OP中描述的那样? – musicliftsme 2012-01-04 23:48:08