2011-07-20 14 views
19

私は、同じネットワーク上で、自分のドメインユーザーで認証するSQL Expressインスタンスを試行しています。 SSMSのWindows認証でうまく動作します。私は、テーブルの編集を含むMyDBデータベースを使用できることを確認しました。私は次の接続文字列しようとするとユーザー名の代わりにコンピュータ名を使用するSQL統合セキュリティ

はしかし、:

Server=ipaddress\SQLExpress; Database=MyDB; Integrated Security=SSPI;

を私は戻ってエラーを取得する:

Cannot open database "MyDB" requested by the login. The login failed. Login failed for user 'ROMANIA\MONSTER2$'

問題はMONSTER2は自分のコンピュータの名前であるということです、私のユーザー名ではありません。 (ルーマニアはドメインです)何が間違っていますか?

[編集]関連性のあるものを忘れました。自分のコンピュータ上で実行されているWebサービスから接続を開こうとしています。

+0

(のではなく、ローカルマシン、それがために表示されます) –

+0

なんて迷惑なの?この質問を投稿していただきありがとうございます。私を助けました。 –

答えて

13

あなたのWebサービスはNT AUTHORITY\Network Serviceセキュリティコンテキストで実行されています。これにより、ドメイン内のネットワークリソースにアクセスするときに、プロセスはのホストのマシンアカウントを使用します。

ドメインのIDで実行するようにWebサービスを設定する必要があります。

IISでWebサービスをホストする場合は、impersonationでこれを行うことができます。私は私の状況の両方を行うために必要な

<configuration> 
    <system.web> 
     <identity 
      impersonate="true" 
      userName="ROMANIA\username" 
      password="********" /> 
    </system.web> 
</configuration> 
+0

もう一度、私は受け入れられると印を付ける答えを選ぶという問題があります。私はこの1つを選ぶだろう、申し訳ありませんRaj。私は両方の答えに投票しました。 –

11

これは、Webサーバーがサービスを使用している人のIDを使用するように設定されているのではなく、実行しているコンピュータのIDが設定されているためです。 Webサービスのweb.configファイルが含まれている場合

チェック:<authentication mode="Windows" />

+6

Duh!あなたは正しいです。記録のために、私はIISに行って、デフォルトのApplicationPoolIdentityではなく自分のIDを使用するように(高度な設定で)アプリケーションプールを変更しなければなりませんでした。私は9分で答えを受け入れるでしょう:) –

0

:ここでは例です

あなたが名前の使用として実行するように、あなたのWebサービスを設定する必要が
<authentication mode="Windows" /> 
    <authorization> 
     <deny users="?" /> 
    </authorization> 
<identity impersonate="true" /> 
関連する問題