繁体   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