[英]Connection from PHP to SQL Server fails with “Login failed for user xxx”
我正在嘗試在本地計算機上建立一個演示,演示如何在PHP中使用SQLSRV。 為方便起見,我添加了一個新登錄名和一個使用該登錄名的用戶,均名為DemoUser,並為該用戶使用的示例數據(即Chinook數據庫)指定了db_datareader,db_datawriter和db_ddladmin角色。
我還將計算機上的SQL Server設置為同時使用Windows和SQL Server身份驗證,然后重新啟動服務器。
完成所有這些之后,我可以以該用戶身份登錄SSMS,並且可以使用SQLStringConnect()函數成功地從Visual FoxPro(我通常的開發工具)創建連接。 但是,當我嘗試使用sqlsrv_connect()從PHP連接時,出現錯誤。
這是連接代碼:
$hostname = "localhost";
$username = 'DemoUser';
$password = 'mYdemoUser';
$database = 'chinook';
$connectionInfo = array("Database"=>$database, "UID"=>$username, "PWD"=>$password, "CharacterSet"=>"UTF-8");
$conn = sqlsrv_connect($hostname, $connectionInfo);
if( $conn == false ) {
echo "Connection could not be established.<br />";
die( print_r( sqlsrv_errors(), true));
}
這是我看到的:
Connection could not be established.Array
(
[0] => Array
(
[0] => 28000
[SQLSTATE] => 28000
[1] => 18456
[code] => 18456
[2] => [Microsoft][ODBC Driver 11 for SQL Server][SQL Server]Login failed for user 'DemoUser'.
[message] => [Microsoft][ODBC Driver 11 for SQL Server][SQL Server]Login failed for user 'DemoUser'.
)
[1] => Array
(
[0] => 28000
[SQLSTATE] => 28000
[1] => 18456
[code] => 18456
[2] => [Microsoft][ODBC Driver 11 for SQL Server][SQL Server]Login failed for user 'DemoUser'.
[message] => [Microsoft][ODBC Driver 11 for SQL Server][SQL Server]Login failed for user 'DemoUser'.
)
)
有什么想法我想念的嗎?
檢查您的服務器日志以查看登錄失敗的原因。 這可能是權限問題
使用sql design studio以該用戶身份登錄,並驗證您是否可以實際上與已知的良好客戶端連接。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.