Windows認証を使用した接続文字列


133

Webサイトを作成していますが、データベースではWindows認証を使用しています。

これをSQL認証に使用することを知っています

<connectionStrings> 
    <add name="NorthwindContex" 
       connectionString="data source=localhost;
       initial catalog=northwind;persist security info=True; 
       user id=sa;password=P@ssw0rd" 
       providerName="System.Data.SqlClient" /> 
</connectionStrings>

Windows認証で機能するようにこれを変更するにはどうすればよいですか?

回答:


192

ユーザー名とパスワードを Integrated Security=SSPI;

したがって、接続文字列は

<connectionStrings> 
<add name="NorthwindContex" 
   connectionString="data source=localhost;
   initial catalog=northwind;persist security info=True; 
   Integrated Security=SSPI;" 
   providerName="System.Data.SqlClient" /> 
</connectionStrings> 

1
特定のADユーザーをアプリプール(Webアプリ)に設定できることを知っています。Windowsアプリでも同じことができますか?
user384080 2014

6
Persist Security Infoおそらく不要です:stackoverflow.com/a/2010059/1869660
Sphinxxx

@ heads5150:プロジェクトに接続文字列がない可能性はありますか?何かが足りませんか。上記の接続文字列を見つけるために、ソリューション全体を検索しました。何も見つかりませんでした。私が作成したものは、WebリリースとWeb構成でコメントされています。ローカルDBでvs Express 2013を使用しています。
Vini、2015年

19

数時間後の正しい解決策:

  1. 構成ファイルを開く
  2. 接続文字列を次のように変更します

<add name="umbracoDbDSN" connectionString="data source=YOUR_SERVER_NAME;database=nrc;Integrated Security=SSPI;persist security info=True;" providerName="System.Data.SqlClient" />

  1. YOUR_SERVER_NAMEを変更しますを現在のサーバー名にします
  2. IISマネージャーを開く
  3. WebサイトまたはWebアプリケーションが使用しているアプリケーションプールの名前を見つけます
  4. 右クリックして[詳細設定]を選択します
  5. プロセスモデルの詳細設定から、ID をカスタムアカウントに変更し、サーバー管理者の詳細を追加します。添付の​​画像を参照してください。

ここに画像の説明を入力してください

これがお役に立てば幸いです。


2
この解決策は私にとってはうまくいきましたが、IDのこの変更がセキュリティの点でアプリケーションの動作にどのように影響するのか疑問に思っていましたか?
CesarB

プロセスによって実行されるすべてのアクションは、そのアカウントの権限/特権で実行されます。必要以上の権限を付与しないでください。専用のサービスアカウントをお勧めします。DISA IISおよびWindows Server STIGもチェックアウトすることをお勧めします。public.cyber.mil
downloads –duct_tape_coder

12

Windows認証を介してSQLサーバーデータベースに接続するには、基本的に、接続するサーバー、データベース名、統合セキュリティ情報、プロバイダー名が必要です。

基本的にこれは動作します:

<connectionStrings>      
<add name="MyConnectionString"
         connectionString="data source=ServerName;
   Initial Catalog=DatabaseName;Integrated Security=True;"
         providerName="System.Data.SqlClient" />
</connectionStrings> 

Integrated Securityフィールドをtrueに設定すると、基本的に、Windows認証を介してデータベースにアクセスすることを意味します。このフィールドをfalseに設定すると、Windows認証は機能しません。

また、使用しているプロバイダーによって動作が異なります。

  • SqlClient両方 Integrated Security = true; またはIntegratedSecurity = SSPI; 取り組んでいます。

  • OLEDB それは統合セキュリティ= SSPI;

  • ODBC それはTrusted_Connection =はい。
  • OracleClient それは統合セキュリティです=はい;

Integrated Security = trueをOleDbプロバイダーと共に使用すると、例外がスローされます。


6

これは短くて機能します

<connectionStrings>      
<add name="DBConnection"
             connectionString="data source=SERVER\INSTANCE;
       Initial Catalog=MyDB;Integrated Security=SSPI;"
             providerName="System.Data.SqlClient" />
</connectionStrings> 

永続的なセキュリティ情報は不要

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.