SQL Server 2005 を使用する Windows アプリケーションを展開しています。プログラムは SQL 認証を使用します。
私の質問は、ユーザー名/パスワードがわからない場合、接続文字列をどのように処理するのですか? これを暗号化されたファイルからロードしますか? それとも、これを処理するための規定はすでにありますか?
SQL Server 2005 を使用する Windows アプリケーションを展開しています。プログラムは SQL 認証を使用します。
私の質問は、ユーザー名/パスワードがわからない場合、接続文字列をどのように処理するのですか? これを暗号化されたファイルからロードしますか? それとも、これを処理するための規定はすでにありますか?
ユーザーがログインの詳細 (ユーザー名とパスワード) を提供する場合は、アプリでそれらを入力する機能を提供する必要があります。たとえば、これらの詳細を尋ねるダイアログを表示します。次に、ユーザーが指定したこれらの値を使用して、コードで接続文字列を作成できます。
または、すべてのユーザーが単一の SQL アカウントを使用して接続する場合、ユーザーから隠したい場合は、暗号化を使用して app.config ファイルに接続文字列を配置できます。方法の例については、cmsjr の回答を参照してください。これをする。
または、これを内部ドメイン (イントラネット) で開発している場合は、データベースを統合セキュリティに切り替えて、ユーザー ドメイン アカウントをデータベース サーバー上の関連するアクセス グループに配置します。そうすれば、ユーザー名やパスワードの収集についてまったく心配する必要がなくなります。
エンドユーザーが何もする必要のないパスワードを提供する場合は、構成ファイルにユーザー名/パスワードを保存しないでください。エンド ユーザーにパスワードを提供してほしくない場合は、インストール時に設定ファイルに入れることができます。ただし、ユーザー名を変更する必要があり、接続文字列を暗号化している場合、これは問題になる可能性があります。
構成のセクションの暗号化は、Windows アプリの場合、Web アプリの場合ほど単純ではありませんが、確実に実行可能です。これがサンプルです。
ユーザーが入力する可能性のある「奇妙な」文字のユーザー名/パスワードを確認してください。あなたが望む最後のことは、接続文字列を変更することです。次に、基本的にはドライバー (ODBC を使用している場合)、データベース、サーバーを指定するだけですが、ユーザー名/パスワードおよび信頼できる接続情報はすべて除外します。次に、 username= と password= を追加するだけで、最後にユーザーが入力したものと同じに設定されます。ただし、セミコロンに注意してください。ユーザー名/パスワードとtrusted_connection = trueの両方がある場合にどうなるかを試したことはありません。