AnalysisServicesデータベースに接続する必要があるASP.NETアプリケーションがあります。すべてのコンポーネントが同じマシン上にあります。
- ウェブアプリケーション
- IIS
- Visual Studio 2008
- SQL Server 2008
私のドメインアカウント(DOMAINNAME \ MyWindowsUsername)は、SQL Serverの管理者であり、ローカルマシンの「Administrators」グループにも属しています。
Webアプリケーションは、Windows認証とID impersonate="true"を使用します。
IIS Windows認証設定(他の組み合わせも試しましたが、成功しませんでした...):
- 拡張保護:オフ
- カーネルモード認証を有効にする:true
- プロバイダーを有効にします:NTLM
ASP.NET開発サーバー(Visual Studioから展開)でWebアプリケーションを使用すると、すべてが正常に機能します。ドメインアカウントと対応するデータベースロールが正しく認識され、セキュリティはデータベースロールで定義されているとおりに機能しています。
しかし、同じWebアプリケーションを(コードを変更せずに)IISに展開すると、(ブラウザーで)エラーが発生します。
トランスポート層でエラーが発生しました。ピアは接続を途中で閉じました。
SQLプロファイラー(接続が失敗したIISの場合)では、次の2つのイベントのみが発生します。
ログインの監査 MyWindowsUsernameDOMAINNAME
監査ログアウト MyWindowsUsernameDOMAINNAME
Analysis Servicesは偽装されたアカウントを認識しているようですが、それでも接続が切断されます。
ASP.NET開発サーバーはDOMAINNAME\MyWindowsUsernameで実行され、IISはLocalSystem(デフォルト設定)で実行されることに気付きました。さまざまなシステム/ネットワークアカウントをAnalyisServices管理者として追加して(この背後にあるロジックを理解するためだけに)アカウントを試してみましたが、成功しませんでした(常に同じエラー)。