データベースサーバとは?わかりやすいイメージと脆弱性対策も解説

更新日:2020年03月19日 発注カテゴリ: Webシステム開発
データベースサーバとは?わかりやすいイメージと脆弱性対策も解説

データベースサーバを使って開発をする場合、しっかりと特性を理解して開発をしていかないといけません。データベースサーバというぐらいなので、データベースを管理するサーバとイメージができるかと思います。しかし、役割が単純だからこそ、奥が深い世界となっているのです。また、データベースサーバはWeb三層構造の中でも最も重要な役割といっても過言ではありません(後ほど詳しく説明)。その中でも、脆弱性の対策をすることもスゴく大切です。ということで、ここでは、そんな重要なデータベースサーバを理解するために、役割などについて紹介してきますので、熟読をしてみてくださいね。

関連する記事

データベースサーバとは言葉通りの意味!

データベースサーバとは、データベースを入れておくパソコンのことを言います。サーバは、さまざまなサービスだったり、機能だったりを提供することができるパソコンです。そして、機能やサービスは任意の種類を入れることができます。つまり、●●機能を入れれば●●サーバになり、▲▲サービスを入れれば▲▲サーバになります。そして、データベースを入れたパソコンがデータベースサーバになります。

また、サーバは、さまざまなパソコンからアクセスされることが前提となります。データベースと言われるぐらいなので、当然、データを管理しています。具体的には、他パソコンから、必要となったタイミングでいろいろな指令が飛んできます。その指令の内容は、データを取得したり、更新したり、追加したり、削除したりです。その指令を実行し、その実行結果を指令を出してきたパソコンへ返しすような動きとなります。

昨今、データベースサーバが活躍する場は非常に多く、今ではなくてはならない存在となっています。その活躍をしている場の最たる例が「Web三層構造」です。

Web三層構造とは、Webサーバ、Webアプリケーションサーバ、そしてデータベースサーバの3つからなる構造でシステムを管理する仕組みです。2020年現在、世にでている多くのWebシステムは、このWeb三層構造を採用しています。なので、データベースサーバは、今やなくてはならない存在となっているのですね。

データベースサーバの役割は演劇団の舞台倉庫と同じ役割!?

さて、ここからデータベースサーバの役割を説明をしていきますが…基本的にWeb三層構造としてのデータベースサーバのお話だということを念頭に以下から一読していただければ幸いです。先に伝えておきたいことは、必ずしも「データベースサーバ=Web三層構造の1つ」というわけではないことです。

ということで、ここからが本題の役割のお話になってきます。唐突ですが、データベースサーバは、ある演劇団の舞台倉庫のようなものだと思ってください。唐突すぎて何をいっているのか分からないと怒られてしまいそうですが…とりあえず、イメージをしながら読んでください。本記事をすべて読み終わったときには「データベースサーバは演劇団の舞台倉庫だよ!」と誰かに説明をしたくなっているはずなので。

Web三層構造は、Webサーバ、Webアプリケーションサーバ、そしてデータベースサーバの3つから成り立っていることは、先程説明をした通りです。Webサーバは、さまざまな画像を表示したり、文字を表示したり役割を担っています。そして、どのような画像を表示するのか?を判断し、必要に応じてデータベースサーバからデータを取ってくる役割を担っているのがWebアプリケーションサーバとなります。Webサーバとデータベースサーバをコントロールしているイメージです。

ちなみに、ここでは画像データを例にとって説明をしましたが、文書データだったり、ユーザアカウントデータだったり、データの種類はさまざまです。Webサーバが表示している画面によって扱うデータは全く変わってくることは理解しておいてください。そして、データベースサーバは、Webサーバが表示するための必要なデータなどを厳重に管理をする役割を担っています

この説明では、なかなかイメージしづらい部分もあるかと思います。ということで、いよいよお待ちかねの演劇団の登場です。

Webサーバは、いわゆる演劇団でいう舞台上になります。お客さんの目がある場所で、どうやって見せて楽しませるのか?が任務となります。そしてWebアプリケーションサーバは、舞台袖で劇の進行を管理する黒子の役割を担います。舞台上の場面が変われば、配置されているセットを捌けて、次の場面のセットを倉庫から運び出し舞台上に設置するわけです。つまり、舞台上と舞台倉庫の間を取り持つ役割となるわけです。

そして、データベースサーバは、舞台倉庫と同じ役割を持っています。舞台上に必要なアイテムが多く片付けられている場所です。つまり、必要なときに必要なものを出したり、片付けたりできるわけですね。どうですか?なんとなくイメージできたのではないでしょうか?とにかく、データベースサーバとは、必要なモノを整理整頓をして置いてある倉庫だというわけですね。

データベースサーバの種類は結局1つで…後はその他多数と分類

データベースサーバには大きく2つの種類に分類できます。1つは、リレーショナル・データベースと呼ばれる種類で、もう1つが、リレーショナル・データベース以外です。2つの種類ではない!と怒られてしまいそうですが、実際のところ、ほぼほぼデータベースサーバで活用される種類は、リレーショナル・データベースとなるため、致し方がないところなのです。

リレーショナル・データベースとは、行と列でデータを管理する手法を取っているデータベースです。身近なところだと、エクセルをイメージしてもらうといいかもしれません。「だったら、エクセルを使えばいいじゃん!データベースなんていらないんでは!?」と思うかもしれません。良い質問です。

エクセルはあくまでも表計算ソフトであり、データを管理するソフトではないので、ソフトが目指しているゴール地点の本質がまったく異なるのです。確かに簡単なデータだけを管理するのであれば、エクセルでいいかもしれませんが、アクセス権限だったり、データ検索だったりを要求されはじめると途端に使い勝手が悪くなってきます。なので、エクセルサーバというのは存在せず、あくまでもデータベースサーバとなるわけですね。

ちなみに、リレーショナル・データベース以外のデータベースは、この行や列を使った手法は取っておらず、階層型のデータベースなどが存在します。

データベースサーバの脆弱性と対策方法を知ることは重要なこと

データベースサーバは、セキュリティ上、非常に重要な位置づけにあります。というのも、大切な利用者の個人情報が入っていたり、お金の管理情報が入っていたりするため、ここが改ざんされてしまえば、まずいことになることは簡単に想像できますよね。

たとえば、銀行の預金口座に入っている金額を簡単に書き換えるとなれば、大勢の人がトライしてくるはずです。わたしだって、お金を増やせるのであれば増やしたいですし…と、冗談はさておき、データベースサーバは、セキュリティ上、強固になっていないといけません

しかし、残念ながら…人が作る以上、どうしてもデータベースサーバの脆弱性というのは出てきます。脆弱性とは、一言で言えば、システムの不具合・設計上の仕様不具合のことです。サイバー攻撃は、このような脆弱性を見つけて、嫌なところをついてくるというイメージです。わたしも開発経験があるのですが、とにかく嫌なところをついてきます。「そんなこと考えてくるのか…」と、予想の斜め上を攻めてくるのです。

また、完全なイージーミスから生まれる脆弱性も中にはあります。たとえば、データベースにアクセスするためのユーザアカウントに対して誰でも彼でも高権限を与えてしまうことです。権限によって、できること・できないことが分けられているため、本当に大切なデータを管理する場合は、ごく一部の人しかいじれないように設定をするのが一般的な考え方です。

一例を挙げてみましょう。とある利用客のお金の入出金を管理しているデータベースサーバがあるとしましょう…。そこで、以下のように権限を付けます。

・Aさんは重役で大きな権限を持っているため、お金を管理しているデータベースを操作ができるようにする
・Bさんは一般社員のためお金を管理しているデータベースには情報を見るしかできないようにする

これであれば、問題はありません。ある程度の脆弱性の対策ができているといえるでしょう。しかし、開発をしている最中は、Aさんの役割を仮定して、データの更新作業のテストを行います。

ただここでちょっとした問題が発生します。一部の人しかいじれないようにしていると、テスト作業の効率が非常に悪いというものです。そこで、たくさんのユーザIDを作って、権限も最上位を与えて効率化を図ります。つまり、上記で紹介したBさんでも上位権限を与えておくということをすることもあるのです。そして、そのまま権限を戻すことを忘れてしまって、実際にリリースをしてしまうという、あってはならないことが発生します。その結果、簡単にセキュリティが突破できるようなユーザが攻撃されてデータベースサーバが崩壊されてしまいます

実際、現場でも「やってはいけない」と分かっていますが、納期が短いことが多く、どうしても忘れてしまうこともありますし、効率化のために管理がなあなあになってしまうことも。全部が全部ではありませんが、いわゆるサーバ関係の脆弱性というのは、こういったことも起因して発生していることが多いのも事実です。

ともあれ、対策方法は、とにかく開発段階であっても、無闇矢鱈に権限を上げないことが大切です。他にも、データの更新や削除は高権限でもできないようにして、専用のIDを作ったりする方法もあります。また、ログイン情報など事細かいログを残すことも有効な手立てとなります。

もし、これを読んでいる人が「開発を依頼する側」という立場であれば、業者としっかりと話し合って「余裕を持ったスケジュール」を組むようにしてあげてください。現場が、突貫工事で開発するようなことがあれば、無理をした分、比例して何かしらの脆弱性を生むことにも繋がってくるので…。

まとめ:重要な役割を担っているからこそ理解を!

データベースサーバを使って開発をしようとしている人、開発を依頼をしようとしている人、いろいろといると思いますが、共通して言えることは、データベースサーバは重要な役割を担っていると理解しておくことが大切だということです。偉そうなことをいって恐縮ですが、開発現場や開発依頼者が軽視しているケースが非常に多いです。その重要性を認識して、どのようなデータを扱っていくのか?どうやってデータを守っていくのか?をしっかりと考えて開発していくことを声を大にしてお伝えしておきます。

今さらですが…演劇団の例でお話をすると、倉庫内のアイテムが無くなっていたり、変なものに変わっていたりしたら、舞台上は大混乱ですよね。だからこそ、鍵を掛けたりするなど管理をしないといけないわけです!データベースサーバも一緒です!

Webシステム開発を一括見積もりで発注先を楽に探す
比較ビズへ掲載しませんか?

Webシステム開発に関連する記事

Web制作会社・システム開発会社に関連する記事

カテゴリ一覧

人気記事

Webシステム開発の最新記事

一括見積もりで発注業務がラクラク!

  • 無料一括見積もりで募集開始
  • 複数の業者・専門家から提案が入る
  • ピッタリの一社を見つけよう

不透明な見積もりを可視化できる「比較ビズ」

比較ビズは「お仕事を依頼したい人と受けたい人を繋ぐ」ビジネスマッチングサービスです。
日本最大級の掲載企業・発注会員数を誇り、今年で運営15年目となります。
比較ビズでは失敗できない発注業務を全力で支援します。

日々の営業活動で
こんなお悩みはありませんか?

営業活動でよくある悩み

そのお悩み比較ビズが解決します!

詳しくはこちら
お電話での見積もりはこちら