3

IIS7 で MVC4 を使用して、最初にモデルの Web サイトを作成しています。

現在、私の接続文字列は次のようになっています。

<add name="VaultEntities"  
    connectionString="metadata=res://*/Models.VaultDB.csdl|res://*/Models.VaultDB.ssdl|res://*/Models.VaultDB.msl;provider=System.Data.SqlClient;
         provider connection string=&quot;
         data source=sqlserver\instance;
         initial catalog=vault;
         integrated security=True;
         multipleactiveresultsets=True;
         App=EntityFramework&quot;" 
         providerName="System.Data.EntityClient" />

Model First アプローチでデータベースを追加すると、接続は Visual Studio 2011 によって自動生成されました。クエリは、私の開発マシンでローカルに完全に機能します。ただし、IIS サーバーでは機能しません。

これは、開発マシンのユーザー アカウントが SQL サーバーにアクセスでき、IIS が SQL サーバーにアクセスしようとするとユーザー アカウントが拒否されるためだと思います。

完璧な世界では、SQLサーバーにユーザーを追加して使用します

User Id=myUsername;Password=myPassword;

私の接続文字列では、残念ながらそのオプションはありません。

詳細に立ち入ることなく、DBA は...扱いが難しいです。

接続文字列で AD アカウントを使用して SQL サーバーにログインする方法はありますか? または、IIS に自分自身を識別させることはできますか?

4

2 に答える 2

6

接続文字列でADアカウントを使用してSQLサーバーにログインする方法はありますか...またはIISに自分自身を自分として識別させることはできますか?

アプリケーションプールを取得して、任意のADユーザーを使用できます。

ただし、自分のユーザー名を使用することはお勧めしません。過去12か月間にユーザー名をロックした回数と、離れるとどうなりますか?

サービスADアカウントを作成/使用し、それをアプリケーションプールにマップし、信頼できる接続を使用して、DBAがそのユーザーにDBアクセスを許可するようにします。申し訳ありませんが、DBAに相談する必要があります。:-)

于 2012-11-12T14:03:46.330 に答える
3

わかりました、2 つのオプションがあります。1. アプリケーション プール ID を、データベースへの AD アクセスを持つ ID に変更するかimpersonation、Web サイトの web.config ファイルのセクションを使用して行うこともできます (このリンクを確認してください)。2. SQL アカウントを接続文字列に追加します。ご覧のとおり、EF 接続文字列を使用していますが、標準の SQL 接続文字列とは少し異なります。ただし、SQL資格情報と同じ部分がまだあります。に置き換えるだけintegrated security = trueですused id =...;password=...。それで全部です。

お役に立てれば。

于 2012-11-12T14:17:10.323 に答える