SQLServer2008でアプリケーションユーザーを一意に識別するさまざまな方法を探しています。
この問題の背景を説明します。使用しているASP.NET4WebアプリケーションはSQLServer2008データベースを使用しており、アプリケーションからデータベースへのすべての接続に対して1つのSQLServerログインとDBユーザーがあります。
私たちは、ユーザーがアプリケーションを介して独自のレポートを作成および実行できるCrystalReportsを使用したレポートソリューションを開発しています。Crystalレポートは、ビューからのデータのみを返すことができます。各アプリケーションユーザーは、サーバーへの独自のログインを持ちます。次に、ビューはSELECT SYSTEM_USER()を使用して、ログインしているユーザーを検索し、ビューから返されるデータを制限します。
- アプリケーションユーザーごとに個別のログインユーザーとDBユーザーを作成するのは悪い習慣ですか?これは、最大80のデータベースでDBあたり1000を超えるユーザーを意味します(各ログインの作成は、手動ではなくT-SQLを介して処理されます)
- DBのビューでユーザーを識別する方法は他にありますか?
- ワークステーションIDにユーザーIDを含めるように接続文字列を変更することを検討しました。SELECTHOST_NAME()を使用してIDを取得できますが、これはワークステーションIDの悪用のようです。
ユーザーを一意に識別する方法に関するその他の提案をいただければ幸いです。どうもありがとう