official guideを使用してsqlsrv_connectでSQL Serverに接続すると、かなり簡単と思われるので、私はほとんどの部分のテキストをコピー:私は実行するとがマイクロソフトからPHPドライバーを使用してSQL Serverに接続するためのWindows認証
$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マシンで、エラーメッセージにリストされているマシン名にこのコードを実行していますが、記載されているマシン名は、ユーザーアカウントではありません私はログインしています。ユーザーaccoun私はこのデータベースにアクセス権を持っています(MS SQL Server Managment Studioを使用して接続することもできます...)が、このスクリプトを使用して接続しようとすると、私の代わりに自分のマシン名が表示されますユーザーアカウント。
私は間違っていますか?
PHPサーバーについてよく分かりません。 IISにインストールするモジュールですか、スタンドアロンですか?基本的にはWebサーバーアカウントとして実行されます。ここで少し議論があります:https://serverfault.com/questions/105420/which-user-does-php-iis6-use-to-read-write-files –
ニックのコメントによると、最初の段落「ほとんどのシナリオでは、WebサーバーのプロセスIDまたはスレッドID(Webサーバーが偽装を使用している場合)がサーバーへの接続に使用されていることに注意することが重要です*エンドユーザーのIDではない* * "したがって、Webサーバーはマシンアカウントを使用してデータベースに接続しているように見えます。 – Nathan