使用Microsoft的PHP驱动程序连接到SQL Server的official guide看起来非常简单,所以我大部分都复制了文本:
$server = "serverlocation\prod";
$database = array( "Database"=>"temp");
$conn = sqlsrv_connect($server, $database);
echo "<pre>";
if ( $conn ) {
echo "Connection established";
} else {
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 '*****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连接到它...)但是当我尝试使用此脚本进行连接时,它会显示我的机器名而不是我的用户帐户。
我做错了什么?
答案 0 :(得分:1)
假设您通过网络运行此功能:
fastcgi.impersonate = 1
php.ini
假设您登录的帐户被SQL Server识别,您应该好好去。有关完整讨论,请参阅this page。
†在该帖子的评论中,作者建议may also be possible with Apache。