0

通常、MySQL や PostGreSQL などのデータベースを、それを使用するアプリケーションと同じマシンで使用します。これにより、アクセスが簡単かつ安全になります。私はちょうど今、別の物理データベース サーバーを持つ最初のサイトを構築しています (今年後半に予定されています)。私は3つのことを疑問に思っています:

  1. (セキュリティ) 別のマシンのデータベースにアクセスするセキュリティに関して、まず何を調べる必要がありますか?
  2. (スケーラビリティ) 私が考えるべきスケーラビリティの問題はこれに関連していますか? (テクノロジーに依存しません)?
  3. (もっとServerFault似ていますが関連しています)同じ物理サーバー(別のVMWare VMを使用)でDBを開始し、後で別の物理サーバーに移動する場合、対処しなければならない暗黙の問題はありますか?経由で別の VM にアクセスしていlocalhostませんか?

これらの質問が完全にばかげている場合は、DB の専門家に謝罪します。

4

2 に答える 2

3

簡単に、私はあなたを許可します。セキュリティ..セキュリティは、データベース サーバーの物理的な場所とはほとんど関係ありません。

ただし、3つの質問に到達するには:

  1. まず、データベース サーバーのセキュリティ モデルを使用してデータベース テーブルへのアクセスを制限する方法を確認します。つまり、アプリケーションがテーブルを削除する必要がない場合は、接続に使用するユーザーにその機能がないことを確認してください。次に、データベース サーバーとアプリケーション間の接続を暗号化する方法を調べます。Windows では、これは kerberos を介してかなり透過的であり、グループ ポリシー設定によって強制することもできますが、他のプラットフォームについては不明です。3 番目に、「保管中」のデータを暗号化するためにデータベースにどのような機能があるかを調べます。つまり、実際のデータ ファイル自体の暗号化をネイティブにサポートしていますか?

ここで重要なのは、アプリケーションはデータベース サーバー自体へのエントリ ポイントの 1 つにすぎないということです。アプリの資格情報を使用して、誰かがアプリケーションを経由せずに直接接続できたらどうなるか、自問してみてください。次に、SQL インジェクションの問題が見つかった場合に何が起こるかを尋ねます。また、誰かがアプリとサーバーの間を行き来する IP トラフィックを監視できる場合、どのような情報を収集できるかを自問してください。彼らはデータを識別できますか? 最後に、彼らがデータベース自体のコピーを取得したらどうなるでしょうか?

1 番目に必要な期間は、次のようないくつかの要因によって異なります。そして、理想的な解決策を思い付くのにどのくらいの時間がかかりますか?

  1. スケーラビリティ: これは純粋に負荷の関数です。残念ながら、ほとんどのデータベース アプリケーションをスケーリングする唯一の方法は、スケール アップすることです。必要に応じて、より大きなデータベース サーバーを取得することを意味します。スタック オーバーフローがこれを経験したのは、それほど前のことではありません。一部のデータベース タイプ (nosql、mongodb など) は、シュレッディングまたはシャーディングと呼ばれる概念をサポートしています。MySql、PostGreSql などはそうではありません。代わりに、それを処理するアプリを特別に設計する必要があります。これは、自動増分キーなどを使用しないことを意味します。これはロイヤル PITA になる可能性があります。アプリケーションによっては、スケールアップがはるかに簡単になるのはそのためです。

  2. 「localhost」経由で別の VM にアクセスすることはできません。localhost は、現在のサーバーへのアクセスを定義します。そのサーバーが VM であるかどうかは重要ではありません。データベース サーバーを名前で参照する必要があります。これで、データベース VM を別の物理サーバーに移行しても、名前で参照しているため、影響はありません。それ以外の考慮事項はありません。

于 2010-06-14T22:41:34.783 に答える
2

Chris の有効な応答に加えて、

安全

データベースまたはアプリ フレームワークが提供するセキュリティ機能に加えて、ネットワーク上でセキュリティ メカニズムを使用します。おそらくこれは、ネットワークのファイアウォール、IPSEC の実行、または ssl トンネルを介した単純なものです。要点は、DB の作成者がネットワーク セキュリティの専門家であると想定したり、DB 認証メカニズムがネットワーク セキュリティにまったく対処したと想定したりしないことです。

スケーラビリティ

ローカル データベースからリモート データベースに移行するときに、スケーラビリティの問題が 1 つ思い浮かびます。リモート TCP/IP 通信は、ローカル パイプ通信よりもはるかに低速です。DB への頻繁なラウンドトリップが原因で、アプリにスケーラビリティの問題が隠れている可能性があります。各クエリ間で、アプリは各 DB 応答を連続して待機します。ローカル システムでは、遅延が非常に小さいため、気付かない場合があります。

于 2010-06-14T23:20:38.177 に答える