内部Webアプリケーションのデータベースレイヤへのエンドツーエンド認証のベストプラクティスを探しています。イントラネットアプリケーションのデータベース認証
私が見た中で最も一般的なシナリオは、アプリケーションで必要とされるものに設定されたアクセス権を持つ単一のSQLアカウントを使用することです。このアカウントはすべてのアプリケーション呼び出しで使用されます。次に、クエリツールを使用してデータベースにアクセスする必要がある場合や、クエリアクセスで別のグループが作成され、そのグループにアクセス権が与えられた場合。
私が見たもう1つのシナリオは、完全なWindows認証エンドツーエンドを使用することです。したがって、ユーザ自身が、すべての権限が設定されているグループに追加され、ユーザはアプリケーションのパラメータの外で更新や変更を行うことができます。これは通常、適切なストアドプロシージャを使用してテーブルを直接更新しないようにします。
最初のシナリオは維持することが比較的容易と思われるが、その後データベース全体が危険にさらされているアプリケーションにセキュリティホールが存在する場合の懸念を提起します。
2つ目のシナリオでは、より安全なようだが、データベースのストアド・プロシージャで多くのビジネス・ロジックを有するの反対の懸念を持っています。これはNhibernateやLINQのような本当にクールなテクノロジーの使用を制限しているようです。しかし、人々が非常に多くの異なる方法でデータを使用することができるこの頃と現在では、我々は予期していない。マッシュアップなどはこれが最善のアプローチです。