1

I have been assigned to develop a application which is to be deployed in more than 1000 locations. I have some security concern over the database which i am using. I want to ensure the accessibility of database to my application only. Database contains some very sensitive information on database (Freezed Bank A/c Numbers in which fund to be transferred) which is to be kept read only until it allowed by remote server(accessed by me only).

My idea to achieve above is as follows,

  1. During installation of application, sa password will changed by application and password will be known by application.
  2. Windows Authentication will be disabled by the application, No windows user will be able to access sql management studio.

Though my concerns are as follows,

  1. Anybody de-attaches database and attaches in different installation, access of database will be gained by user.
  2. I have to provide the option take backup of database, user can restore the database in different installation.
  3. I guess there will be some methods in that ldf-mdf files can be replaced as users is having full file system windows access.

I will not mind if the user gains the read only access to database, but i will strongly insist no write operation should be allowed on database.

Any suggestions how to implement this.

Example : SQLite for .net has some features like encryption of database, which ensures access of database to application, while have full access to file system, But sqlite is not recommended for large scale applications because SQLite only supports a single writer at a time.

4

2 に答える 2

1

あなたの全体的なデザインに問題があるというShivanRaptorの指摘に同意します。

このようなアプリケーションのデプロイは問題ありませんが、SQLデータベースを一元化する必要があります。そのようなデータベースをリモートの場所に展開する必要がある場合は、そのようなデータベースを保持している各コンピューターを防弾する必要があります(つまり、ローカルであっても、管理者を含め、誰もデータベースにアクセスできません)。SQLサーバーの展開はサーバー中心です。それらは一元化されることが期待されます。誰かがコンピュータの管理者IDを持っている限り、あなたのデータは安全ではありません。

  1. 1000の場所にデプロイできるアプリケーションを開発するのが最善です。ただし、これらのアプリケーションはすべて、データセンターの集中型SQLサーバーから必要なデータを取得します。

  2. または、データセンターのSQLデータベースにデータをデプロイし、1000の場所と中央のSQLデータベース間の安全なパブリッシャー/サブスクライバー関係を構成します。これは、非常に具体的なシナリオ/環境がない限り、費用がかかり、不要です。気づいていません。

  3. または、IBM Lotus Domino(上記の#2と同じ)などの他のプラットフォームを使用します。

#1を行うのが最善です。書き込みアクセスを完全に防ぐために、覚えておいてください。サーバーをリモートオフィスに配置できません。例:ローカルで誰かがハードディスクをそのコンピューターから引き出し、別のコンピューターに接続し、すべての変更を加えて、コンピューターに接続し直すことができます。

于 2013-02-25T06:40:19.707 に答える
0

ここでいくつかのことが私に関係しています。dbのアクセスレベルを設定することは、あなたの懸念の最も少ないものです。ネットワークとサーバーの管理者はどこにいて、サーバーへのアクセスをどのように制御していますか?ファイアウォール、適切なポートルーティングおよび保護の背後で保護されていますか?

銀行口座番号の保存に関しては、暗号化されていないデータベースに保存することはできません。保存用に暗号化し、表示用にデータを復号化する関数を作成します。今日のプライバシー法により、金融機関は顧客の名前、住所、電話番号の暗号化も開始しました。

別の懸念がすでに提起されています。上記のプライバシーの観点から、データは複数のシステム、たとえば1〜2台の運用サーバーで利用できるようにすることはできません。リモート、QA、および開発データベースは、スクラブされたデータを使用する必要があります...銀行またはccのアカウント番号、電話番号、住所または名前は使用できません。

私はあなたのためにいくつかのリンクを掘り下げようとしますが、口座番号のような機密データを扱うときにカバーすることがたくさんあります。

于 2013-02-25T06:50:50.383 に答える