2017-02-24 3 views
0

新しいアプリケーションフレームワークを設定しており、ユーザーのデータベースセキュリティを設定するためのベストプラクティスが不思議です。以前のフレームワークでは、ユーザーログオンプロセスがあり、ユーザーがログオンすると、ユーザーが許可されたフォームとメニューオプションがフレームワークによって制御されていました。すべてのユーザーが同じユーザーアカウントでデータベースにアクセスしました。MSSQLを使用したアプリケーションセキュリティのベストプラクティス

このアプローチの欠点は、SYSTEM_USERを使用して特定のデータベース要求を行っているユーザーを特定できないことです。

新しいフレームワークにはログオンフォームがあり、ユーザーがアクセスできるメニューオプションを制御します。新しいユーザーがアプリケーションに追加されるたびにデータベースユーザーアカウントを設定する必要がありますか?接続プーリングを使用できないため、ライセンスに関する懸念がありますか?

答えて

0

ライセンスの問題は発生しませんが、パフォーマンスの問題を引き起こす可能性のある多数の接続が生成されます。

現在のユーザーのユーザーIDを渡すためにストアドプロシージャにパラメータを追加してログに記録できるようにすることをお勧めします。

パラメータを渡すことが望ましくない場合は、現在のユーザーをCONTEXT_INFO()に配置するか、SQL 2016を使用している場合はSESSION_CONTEXT()を使用してログに記録します。 https://www.mssqltips.com/sqlservertip/4094/phase-out-contextinfo-in-sql-server-2016-with-sessioncontext/

+0

ありがとうございました。私が探していたアドバイスだけ –

関連する問題