2016-07-21 7 views
0

1人の友人のためにSQL Server 2008 R2データベースを使用してWinformsアプリケーションを開発しました。Winformアプリケーションのデータベースセキュリティ

&を私の友人のPCにインストールしました。ソフトウェアは明らかにデータベースファイルを表示します。 SQL Serverでそのファイルを開くと、SQLクエリ、tbl構造などを見ることができます。

私はこのすべてをクライアントから隠したいと思っています。

どうすればいいですか?

インターネット上のソフトウェアの一部を検索します。私はそれを私のPCにインストールしました。私にはデータベースファイルが表示されません。彼らはどうやって?

私を助けてください。

+2

認証を使用してWebサービスの背後にデータベースを隠す必要があります。クライアントからデータベースに直接話をしないでください。 – SLaks

+0

データベースオブジェクトのいくつかを暗号化することができますが、一部に管理者権限がある場合は、暗号化を解除する方法もあります。あなたはデータベース管理者からものを隠すことはできません。 – FLICKER

+0

1. Webサービスを使用することで、クライアントからデータベースファイルを隠すことができません。 2. SQL 2014+バージョンで使用可能な暗号化/復号化オプション 私は2008 R2を使用しています。 – user3260083

答えて

0

あなたのアプリケーションとデータベースが両方ともあなたの友人のPCに配備されている場合、本当にデータベースにアクセスできないようにすることはほとんどありません。

SQL Serverには、権限のあるユーザー(管理者など)からのスキーマビューをブロックする機能はありません。また、マシンを所有している場合、最初に追加されていなくても自分自身をSQL Serverの管理者として表示できます管理役割またはSAアカウントへのアクセスを許可します。ストアドプロシージャにすべてを配置してからSPを暗号化するなどのハードルを設定できますが、それは壁ではなく小さなハードルです。

これはSQL Serverに固有のものではなく、市販のRDBMSにも同じ問題が当てはまります。ボックスを所有している場合は、DBコンテンツにアクセスすることは難しくありません。ソフトウェアベンダーはこれを何十年もやろうとしており、ほとんどの場合、代わりに合法的にIPを放棄し保護しています。それはあなたのための慰めではありませんが、それは現実です。

Azureのようなサービスを使用することが可能な場合は、Azureでアプリケーションをホストすることができ、データベースはAzure SQL DBまたはVM内の通常のSQL Serverにすることができます。フィーチャセットとサーフェスエリアが機能する場合は前者をお勧めします。それはあなたが慣れているSQL Serverのボックス製品と同じではありません。ただし、管理してセキュリティを確保することは、はるかに少ない作業です。 Azureのアプリケーションでは、あなたの友人とクライアントはブラウザ経由でアクセスし、データベースに直接アクセスすることはありません。アプリがローカルにあなたの友人やクライアントのマシンにインストールされていても、データにしかアクセスできないようにアプリケーションを設計するのは簡単です。

関連する問題