2017-02-07 7 views
-1

私はいくつかのデータベーステーブル(< 10) - テーブルのスキーマとそれに含まれるデータの両方を難読化/隠蔽する方法を探しています。誰かが逆しようとした場合データベーススキーマを難読化/隠す方法はありますか?

  1. いくつかのテーブル名、関係、列名、列の型とテーブルの実際のデータいくつかの独自の実装データと詳細を与えるする傾向がある - これには2つの理由があります。アプリケーションをエンジニアリングします。
  2. アプリケーションが顧客の場所に配置されると(顧客のITスタッフがデータベースに完全にアクセスできるようにする)、難読化/隠蔽はITスタッフが直接データベースのデータ操作を介してアプリケーションを操作(またはリバースエンジニアリング)することも防止します。 2つのアプローチ以下ザが頭に浮かぶ

-

  1. 各センシティブ集約ルートテーブルのデータを非正規化し、ルートテーブルごとに1つのテーブル内の難読化(及び潜在的に暗号化された)BLOB列(として保存)。これは問題を非常にうまく解決し、他のアプリケーションでも同様に使用されています。しかし、それははるかに初期の作業を必要とし、長期的には維持しにくい。

  2. 表/列名を汎用文字列に変更し、それらに含まれるデータを難読化/暗号化します。この場合、暗号化されたデータは直接操作を阻止するが、依然としてリバースエンジニアリングする傾向がある。

この難読化/隠蔽(必要に応じて異なるタイプのデータベースを使用する可能性があります)を達成するための確立されたツール/技術/戦略はありますか?上記の戦略に関するコメント/アドバイスも感謝しています。

+0

https://www.simple-talk.com/sql/database-administration/obfuscating-your-sql-server-data/ – McNets

+2

Ifあなたのスキーマがわかっていなくても、データが流出しないようにしたいのですが、なぜ完全なデータベースを顧客に出荷していますか? – Siyual

+0

@McNetsリンクをありがとう。 – Achilles

答えて

1

database object schemaを使用して、スキーマでセキュリティ設定を適用できます。もちろん、既存のアプリケーションを新しいスキーマに対応するように変更する必要があります(たとえば、などのすべてのコードにアクセスすると、スキーマsecure.を追加してコードを更新せずにテーブルを移動すると壊れます)。

sysadminは、他のユーザーのスキーマと変更権をすべて見ることができるため、sysadmin以外の場合はその旨を証明することはできません。

記事にはlinkがあります。この資料は2005年と2008年のものですが、database object schemaはSQL Server 2014でも有効です。

関連する問題