簡體   English   中英

從PHP到SQL Server的連接失敗,並顯示“用戶xxx登錄失敗”

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM