質問

.NETクライアントがSQL Server 2008データベースのすべてのデータとストアドプロシージャにアクセスするクライアントサーバーアプリケーションがあります。

このすべてのデータを保護して、作成および承認したユーザーのみがこの特定のデータベースにアクセスできるようにする方法はありますか?特に、ユーザー「sa」が思い浮かびます。彼が私のすべてのデータにアクセスするのは好きではありません。

役に立ちましたか?

解決

システム管理者がデータにアクセスするのを防ぐことはできません。

ただし、指定されたdba以外は、saアカウントのパスワードを持ってはいけません。 saにパスワードがない場合、または多くの人がパスワードを持っている場合は、ここで変更します。アプリケーションがsaを介してアクセスする場合は、すぐに変更します。

アクセスを制限する最善の方法は、テーブルおよびビューから他のすべてのアカウントへのアクセスを削除し(選択アクセスを含む)、ストアドプロシージャを介したexecアクセスのみを許可することです。そのようにして、指定された管理者以外の誰でも、ストアドプロシージャが行うことができる以外のことはできません。ただし、アプリケーションまたはストアドプロシージャのいずれかで動的SQLを使用している場合、これを行うことはできません。これが、動的SQLが不適切なアイデアである理由の1つです。

他のヒント

saまたは他のシステム管理者をブロックすることはできません。完全なシステムへのアクセスはその役割に不可欠です。 データを暗号化して、アプリケーションの外部で無意味になるようにすることもできますが、将来のレポートのニーズが複雑になる可能性があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top