web-dev-qa-db-ja.com

セキュリティ情報プロパティを永続化= trueおよびセキュリティ情報プロパティを永続化= false

プロパティの場合:

Persist Security Info=true

そして

Persist Security Info=false

それらの違いを教えてください。それを自分の接続に入れないとどうなりますか?

connect.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;
                            Data Source=C:/Users/Nourah/Downloads 
                            /Phase3/Salary.accdb; 
                            Persist Security Info=False;";
26
Nourah

Persist Security Info= true OR Persist Security Info=false]を設定しても、前に違いは表示されません。違いはバックグラウンドで発生しています。

接続が開いているか、または開いた状態になっている場合、パスワードなどのPersist Security Info set to falseセキュリティ機密情報が接続の一部として返されない場合。

Persist Security Info to Trueを設定すると、Windowsは接続文字列で指定されたパスワードを記憶します。

それが違いです。

MSDNの説明

Persist Security Info trueまたはfalseの設定は、接続文字列でユーザー名とパスワードを指定した場合にのみ有効になります。接続文字列でユーザー名とパスワードを指定し、Persist Security Infofalseとして設定すると、資格情報を抽出できません。しかし、Persist Security Infoをtrueに設定すると、接続文字列ウィンドウで資格情報を指定すると、資格情報が記憶され、プログラムで抽出できます。

38
Sachu

私はこの答えを見つけました こちら Dan Guzman、SQL Server MVPから:

開発中であってもデフォルトであるため、FALSEを指定するか、キーワードを完全に省略することをお勧めします。 TRUEを指定する必要があるのは、アプリケーションがSQL認証を使用し、その後接続オブジェクトからパスワードを取得する場合のみです。これは私の経験ではめったに行われないか、必要ありません。パフォーマンスは問題ではありません。

2
Greg Gum