首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用Windows身份验证从PHP连接Server

无法使用Windows身份验证从PHP连接Server
EN

Server Fault用户
提问于 2022-01-12 15:10:40
回答 1查看 1.2K关注 0票数 0

我试图使用,即SQLSRV-5.9,从PHP-8.0 (托管在IIS-10本地主机上)连接到。当从PHP页面连接时,如果我使用Server身份验证,它将立即连接。但是在使用Windows身份验证时,它会在浏览器中抛出一个错误:

代码语言:javascript
复制
Connection could not be established.
Array ( [0] => Array ( [0] => 28000 [SQLSTATE] => 28000 [1] => 18456 [code] => 18456 [2] => [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Login failed for user 'NT AUTHORITY\IUSR'. [message] => [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Login failed for user 'NT AUTHORITY\IUSR'. ) [1] => Array ( [0] => 28000 [SQLSTATE] => 28000 [1] => 18456 [code] => 18456 [2] => [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Login failed for user 'NT AUTHORITY\IUSR'. [message] => [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Login failed for user 'NT AUTHORITY\IUSR'. ) )

我的环境是Windows 10 Pro,版本21H2,64位.在我的Server中,Windows身份验证和Server身份验证都已启用,我可以通过使用它们连接到服务器。那么,是什么阻止我的PHP代码使用Windows身份验证连接到服务器呢?PHP和Sever都在同一台PC上。我做错了什么?因为我是PHP的新手,你能用一个简单的例子来说明一下吗?

下面是我的连接-db.php代码。请注意如何将连接字符串用于Windows和Server身份验证。

代码语言:javascript
复制
?php
    $serverName = "(local)";    // Optionally use port number (1433 by default).
    $connectionString = array("Database"=>"TestDB");    // Windows Authentication connection string.
    // $connectionString = array("UID"=>"sa","PWD"=>"sa","Database"=>"TestDB");    // SQL Server Authentication connection string.
    $conn = sqlsrv_connect($serverName, $connectionString); // Connect to the server.

    if($conn === false) {
        echo "Connection could not be established.
";
        die(print_r(sqlsrv_errors(), true));
    } else {
        echo "Connection established successfuly.
";
    }

    sqlsrv_close($conn);    // Close connection resources.
?>

谢谢和问候!

EN

回答 1

Server Fault用户

发布于 2022-01-13 14:54:27

问题在于NT权限\IUSR没有在Server中登录。与.Net应用程序不同,IIS不使用Server安装附带的默认Windows身份验证登录。它使用NT权限\IUSR,这是我不知道的。但是\IUSR在Server中没有为它创建的任何默认登录名或DB用户。您需要显式地创建它们。创建它们并为您的数据库赋予各自的特权解决了这个问题。现在,我可以使用Server身份验证从PHP登录。希望这对后人有帮助。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1089801

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档