我有一臺計算機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