使用Microsoft的PHP驱动程序连接到SQL Server的official guide看起来非常简单,因此我在很大程度上复制了文本:
$server = "serverlocation\prod";
$database = array( "Database"=>"temp");
$conn = sqlsrv_connect($server, $database);
echo "
";
if ( $conn ) {
echo "Connection established";
} else {
echo "Connection could not be established.
";
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 '*****DOMAIN\MY_MACHINE_NAME*****'.
[message] => [Microsoft][ODBC Driver 11 for SQL Server][SQL Server]Login failed for user '*****DOMAIN\MY_MACHINE_NAME*****'.
)
我在错误消息(是Windows计算机)中列出的计算机名称上运行此代码,但是列出的计算机名称不是我登录时所使用的用户帐户.拥有该数据库的权限(并且我可以使用MS SQL Server Managment Studio很好地连接到它…),但是当我尝试使用此脚本进行连接时,它将显示我的计算机名而不是我的用户帐户.
我究竟做错了什么?
解决方法:
假设您正在通过网络运行它:
>您应该使用IIS,而不是Apache†
> IIS必须启用Windows身份验证
>必须禁用匿名身份验证
>您必须在php.ini中设置fastcgi.impersonate = 1
假设您登录的帐户被SQL Server识别,那么您应该可以使用.有关完整的讨论,请参见this page.
标签:php,sql-server
来源: https://codeday.me/bug/20191012/1903797.html