SQL Serverにアクセスするサービスがあり、クライアントは統合セキュリティを使用していません。マシンの電源がオンになるたびに、サービスにデータベースへのアクセス権が必要です。SQL Serverのユーザー名とパスワードを保存する必要がありますか?もしそうならどこ?(そしてどうやって)
3 に答える
はい、特定のユーザー名とパスワードを使用してSQL Serverに接続する場合は、それらの資格情報を接続文字列で指定する必要があります。
そして、はい、それらをプレーンテキストで保存することは少し危険なビジネスです.....
...幸い、.NETを使用すると、構成ファイルのセクション全体を強力に暗号化できます。
.NETアプリケーションでのパスワードの暗号化について読んでください。一般的な考えに反して、これはASP.NETだけでなくすべての.NETで利用できます。サービスでも機能しますが、まったく問題ありません。
したがって、SQL Server接続文字列をapp.configサービスのに保存してから、セクションを暗号化して<connectionStrings>完了してください。
このサービスのSQLログインを作成する必要があります(http://msdn.microsoft.com/en-us/library/aa337562.aspx)。このSQLログインのユーザー名/パスワードは、サービスがアクセスできる場所(アプリ構成/レジストリ)に保存する必要があります。
クレデンシャルを保存するときはいつでも、他の人がクリアテキストでこれを見ることができないように暗号化してください。接続文字列全体を暗号化することもできます。サービスは、資格情報/接続文字列を復号化して読み取り、この情報をSQL接続に渡すことができる必要があります。
ユーザー/サービス名を適切な特権を持つサーバーにUserとして追加する必要があり、データベースにも同じ名前を追加する必要があります。これは、SQLサーバー管理スタジオで行うことができます。最初にサーバーに接続し、サーバーのユーザーフォルダーにユーザー/サービスを追加し、データベースのユーザーフォルダーにユーザーを追加します。
ページの最後にある「ローカルSQLServerへのアクセスの許可」について説明しているこの投稿をご覧ください。