2016-09-08 23 views
0

IIS/PHPで動作するPDOが取得したWindows資格情報を使ってMsSQLにログインする必要があります。mssql windows資格情報pdo over iis-php

[Microsoft][ODBC Driver 11 for SQL Server][SQL Server]Login failed for user 'myuser' 

を私はPHPコード内で隠して彼の資格情報を使用して偽のMSSQLアカウントを使用していますこれを行うには:私はちょうど取得しています。この1に到達することはできません。私はActive Directoryサーバーにログインすることができます。その後、私の企業ネットワーク内のMsSQLサーバーにもログインする必要があります。

これは私のPHPクラスに接続するためのコンストラクタです:

public function __construct($host, $user, $pass, $dbname) { 
$this->dbh = new PDO("sqlsrv:Server=".$host. 
";Database=".$dbname. 
";TransactionIsolation=".PDO::SQLSRV_TXN_READ_UNCOMMITTED, 
$user,$pass); 
} 

私は、ユーザーを取得し、POSTパケットから渡すこれがためにも、JSONの答えとミドルウェアですので、私はシングルサインオンを使用することはできませんがアクティブなWindowsログインインスタンスのないスマートフォンデバイス。

答えて

0

残念ながら、現在のバージョンでは不可能です。ユーザー名とパスワードを渡すと、sqlsrv拡張機能はWindows認証ではなくSQL Server認証を常に使用します。次のリンクに気をつけてください。

https://msdn.microsoft.com/en-us/library/ff628159(v=sql.105).aspx

+0

私はそれが公式のツールでは不可能だと思った、私はまた、私は本当にあなたのユースケースに理解していない回避策 – rivaldid

+0

を探しています。あなたのユーザは、データベースのログインを知っている必要がありますか?いくつのアカウントを持ちたいのですか? ADの各ユーザーには、SQL Serverへの自動アクセス権がありませんが、データベースにアカウントの資格情報を追加し、そのアカウントにアクセス許可を設定する必要があります。ドメイン資格情報の後に実行するようにIISを構成できます。また、sqlsrv拡張機能でも使用する必要があります。それはあなたが探しているものですか? – kba

+0

私のユーザーは自分のADアカウントを知っているだけです。アプリケーションは、その資格情報が有効であるかどうかを確認した後、DB MsSQLにアクセスします。いったん接続されてログに記録されると、2番目のクエリはそのようなシリアル番号を使用して有効になっていることを確認します。 – rivaldid

関連する問題