0

私は自分の質問に対する答えを見つけようとしましたが、まだ正しい答えを見つけることができませんでした (1 つを教えていただければ幸いです)。私は、サービス (Web サイト、フォーラム、Wiki、電子メール) の実行に関しては初心者です。むしろ実験中です。

私はいくつかのウェブサイト (主にワードプレス)、メール サーバー、フォーラム、ウィキ、ファイル共有 (owncloud) を 1 つのサーバーでホストしています。

これまで、新しいサービスをインストールするたびに、インストールの readme のアドバイスと同じように、新しいデータベース (mysql) を作成していました。複数のサービスを連携させたい。主に統合されたユーザー データベース。それを行う最善の方法は何ですか。サーバーのCPU負荷に対して、複数のデータベースと1つのデータベースのほうが重いですか? 安全ですか?管理は簡単ですか?複数のデータベースを使用しているときにCPU負荷が問題にならない場合、ユーザーデータベースを作成して、それをリンクしたいサービスデータベースにリンクすることは可能ですか?

4

1 に答える 1

0

複数のアプリケーション (フォーラム、ウィキなど) が同じデータベースにアクセスしても、CPU 使用率に影響を与える可能性はほとんどありませんが、他にも欠点があります。

  • アプリケーションで使用されるテーブル名には競合がある可能性があります (それらの多くは「セッション」または「ポスト」テーブルを持つ可能性があります)。一部の Web アプリには、たとえば競合を回避するために、"wp_session" や "wp_posts" のように、テーブル名の前に文字列を付ける機能があります。
  • はい、安全性が低くなります。アプリケーションの 1 つにセキュリティ ホールがあり、誰かがそのデータベースにアクセスできた場合、すべてのアプリケーションのデータが危険にさらされます。
  • 複数のデータベースは、アプリケーションのアップグレード、バックアップ、アプリケーションの削除または追加を行うときに管理が容易になる可能性があります。
  • 誤って 1 つのデータベースを壊してしまうと、すべてのアプリが壊れてしまいます。

アプリケーションに同じ認証データベースを使用させるには、同じデータベースを指すだけでは通常十分ではありません。ユーザー情報を格納するために異なるデータベース スキーマ (認証データベースの異なる列) を使用する可能性が高いため、パスワードの格納に異なるハッシュを使用する可能性があるためです。 、 等々。

質問は非常に広く、具体的な答えは、使用している実際のアプリケーションに大きく依存します。一般的に、最善のアプローチは、OpenID や OAuth などのプロトコル、または LDAP データベースや PAM (Pluggable Authentication Module) などの認証バックエンドをサポートするアプリケーションを選択することです。これらのメソッドを使用すると、単一のメソッドで管理される単一のユーザー データベースを使用できます。アプリはすべて同じバックエンドで動作する必要があります。いずれにせよ、それをスムーズに実行するにはかなりの学習経験になる可能性があります。

于 2013-07-01T19:17:48.970 に答える