2011-10-31 8 views
0

Windows認証を使用してSQL Server 2008を使用しているC#アプリケーションとデータベースへの接続を使用しています。私はデータベースのためのいくつかのユーザーを作成しましたが、私は自分のアプリケーションレベルでそれらを使用する方法を理解できません。私の目標は、任意のPCにこのアプリケーションをインストールし、SQL Management Studioをインストールしようとすると、ユーザーがデータベースにアクセスできないようにすることです。アプリケーションレベルでのSQL Serverデータベースセキュリティ?

私がやりたいことを理解するために誰かが説明したり、参考にしたりできますか?

答えて

1

ユーザーがあなたのアプリなしでDBにアクセスすることはできませんあなたはいくつかのオプションを持っていることを確認したい場合:

  • は、「仮想ユーザー」
    を実装する。これは、あなたが独自のユーザー管理を実装意味するだろうし、あなたのアプリユーザーのための実際のDBユーザーを作成せず、自分の構造内の "仮想ユーザー"のみを作成してください...あなたのアプリケーションは、ユーザーには不明なDBアクセスのために一般的なアプリケーションユーザーを使用します...アプリケーションユーザーは、 DBユーザーは自分のユーザー/ pwでDBに直接アクセスすることはできません。

  • これは、あなたが実際のユーザーを作成する意味します...しかし、あなたのアプリがアプリのユーザーを作成することができます...ユーザーが作成または自分のパスワードを変更しているときは設定していない「特別なパスワード・スキーム」
    を実装ユーザーのDBのパスワードをそれにいくつかの計算(例えば、ハッシュ)を使用して別のパスワードを作成し、DBレベルで設定する...あなたのアプリは計算を知っているので、ユーザーがあなたのアプリにログインして計算を行い、 DBにログインする結果...実際のDBユーザーがDBに直接ログインすることはできません。なぜなら、あなたが知っているパスワード(あなたのアプリで使用されている場合にのみ動作します)は、DBが知っているパスワードではないからです...

あなたの.NETアプリは常に逆コンパイル/リバースエンジニアリングできるので、上記のどれもが100%安全ではないことをご存じですか?上記は確かに "普通のユーザー"がDBに直接アクセスするのを阻止するのに十分です...

関連する問題