Nginx + PHPからSQLサーバにWindows認証で接続する

今回もWindowsネタ

PHPからSQLサーバに接続するためにはMincrosoftから提供されている、
SQLサーバ用のDriverが必要になります。

Microsoft Drivers 3.0 for SQL Server for PHP
http://www.microsoft.com/download/en/details.aspx?id=20098

SQLのサーババージョンと、
解答したブツはnts版、ts版それぞれ導入したPHP.exeに合わせて選択してください。

<?php
// SQLサーバ接続
$serverName = "sqlserver.hogehoge.com";
$connectionInfo = array( "Database"=>"SQL_database");

// ユーザ名とパスワードを指定しないと勝手にWindows認証になるもよう
$conn = sqlsrv_connect( $serverName, $connectionInfo);

if( $conn === false )
{
    echo "Unable to connect.\n";
    die( var_dump( sqlsrv_errors(), true) );
}
else
{
    echo "connect ok\n";
}

// 発行するSQLを記述
$tsql = "SELECT SUSER_SNAME();";
$stmt = sqlsrv_query($conn, $tsql);
while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_NUMERIC ) )
{
     var_dump($row);
}

sqlsrv_free_stmt($stmt);
sqlsrv_close($conn);

nginx + phpからだとnginxを起動しているアカウント名でSQLサーバにログインを行うようです、
Webサーバにアクセスしたアカウント名で接続を行いたい場合は、
IISを使って「Windows認証を利用する」でいけるかもしれません。

コメントを残す