PHP无法连接到SQL Server 2016
我在这里搜索了所有关于这个问题的线索,没有一个答案对我有用 我已经安装了(Windows 10 64位)、Apache2.4(64位)、PHP 7.4.2(64位)和SQL Server 2016(64位)。 我已经更新了php.ini以包括PHP无法连接到SQL Server 2016,php,sql-server,apache,Php,Sql Server,Apache,我在这里搜索了所有关于这个问题的线索,没有一个答案对我有用 我已经安装了(Windows 10 64位)、Apache2.4(64位)、PHP 7.4.2(64位)和SQL Server 2016(64位)。 我已经更新了php.ini以包括 extension=php_sqlsrv.dll 它来自于php_sqlsrv-5.7.1preview-7.4-ts-vc15-x64包,当我运行php-m列出所有模块时,sqlsrv被列出 但是,当我尝试从PHP文件连接到SQL server时,它失
extension=php_sqlsrv.dll
它来自于php_sqlsrv-5.7.1preview-7.4-ts-vc15-x64包,当我运行php-m列出所有模块时,sqlsrv被列出
但是,当我尝试从PHP文件连接到SQL server时,它失败并显示一条错误消息
<?php
$serverName = "MYPC\\SQLINSTANCE";
$uid = "sa";
$pwd = "thePassword";
$databaseName = "TesterDB";
$connectionInfo = array( "UID"=>$uid,
"PWD"=>$pwd,
"Database"=>$databaseName);
/* Connect using SQL Server Authentication. */
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn )
{
echo "Connected";
}
else
{
echo "Error";
die( print_r( sqlsrv_errors(), true));
}
?>
错误消息:
用户“sa”登录失败。)[1] =>数组([0]=>42000[SQLSTATE]
=>42000[1]=>4060[code]=>4060[2]=>[Microsoft][ODBC驱动程序13 for SQL Server][SQL Server]无法打开请求的数据库“TesterDB”
通过登录。登录失败
登录名和密码正确,PC和实例名正确。
还有什么可能导致连接失败?某些格式问题?某些不兼容?检查列表:
为什么您要首先尝试使用
sa
帐户连接到SQL Server?应用程序不应该使用sa
帐户。我建议首先创建一个只具有应用程序所需权限的登录名。然后,如果失败,请查阅SQL Server的日志,它将告诉您exac不要解释身份验证失败的原因(如果您不理解错误,请在问题中说明)。“sa帐户始终用于访问我们使用的软件中的此实例和数据库。”好吧,这需要改变;这是一个糟糕的想法,因为有这么多原因。如果你的网站,在这种情况下,曾经受到威胁的人有权做任何他们想做的事。你真的需要尽快修复你的安全模型。“坦率地说,我对此不感兴趣”所以,如果有人恶意使用你的应用程序做任何他们想做的事情,这不是你的问题,因为你不想麻烦得到一个权限有限的服务帐户?我的意思是没有办公室,但这样的态度就是为什么安全漏洞会导致如此多的数据被泄露;因为应该关心的人不会。听起来你没有databaseTesterDB
在您的实例上,但我仍然建议您修复这些凭据。这里表达的对数据安全的态度非常糟糕。如果您受到GDPR的影响(我怀疑您没有)这种糟糕的做法将被视为一个很大的促成因素,作为应用程序开发人员,您也有责任确保您拥有正确的工具;sa
帐户是完全错误的工具。如果您无法控制这一点,作为维护连接到数据库的应用程序的人,您需要与有能力更改登录详细信息的人联系,并请求更改。如果你对此不感兴趣,那么我很抱歉说,但坦率地说,这只是疏忽,我不会在我的团队中雇用对他们所涉及的应用程序有这种感觉的人。