注目キーワード

メタCセキュリティ物語 ~データベース編・データを守るための仕組みと技術~

この記事は、セキュリティ資格学習のために、AI(Claude)と共同で作成したコンテンツです。
※間違った解釈がある可能性があります。

目次

この記事の目的

セキュリティの専門用語は、カタカナや略語が多く、初学者にとって非常に取っつきにくいものです。
そこで、専門家じゃなくてもわかるようにストーリー風に構成してみました。

 

📍 結城の新たな標的

これまでの攻撃が次々と防がれた結城は、新しい攻撃の糸口を探していた。

「ネットワークは厳重に守られてる…でも、データベースはどうかしら」

結城の画面には、メタCの求人情報が表示されている。

「データベース管理者募集…システム構成を見る限り、ユーザー情報、チャットログ、アクセス履歴…すべてデータベースに保存されてる」

「もし、データベースに侵入できれば…山本とお砂糖のプライベートなやり取り、全部見れる」

結城の目が不気味に光った。

「データベースのアクセス権限の設定ミスを狙う。ロールの設定が甘ければ、一般ユーザーなのに管理者権限でアクセスできるかもしれない」

キーボードを叩く音が、静かな部屋に響いた。

「さらに、最近流行りのデータレイクNoSQLデータベース…新しい技術は設定ミスが多い。そこを狙えば…」


💑 カフェでのひととき

その頃、山本と里見は、メタC内のカフェワールドでゆっくりお茶をしていた。

「里見、最近メタCのデータベースが増強されたって聞いたよ。ユーザーが増えたからかな?」

山本が何気なく話題を振る。

「そうね。でも慎也、データベースってただデータを保存するだけじゃないのよ。誰が何をどこまで見られるか、厳密に管理しないと危険なの」

「あ、そうだね…結城に狙われそうだ」

「そう。データベースは情報の宝庫。攻撃者にとっては最高の標的よ。今日は、データベースのセキュリティについて教えるわ」


📖 里見の解説:データベースの基礎

DB(データベース:Database)

「まず、データベースって何か分かる?」

「えっと…データを保存する場所?」

「そう!でも、ただのファイル保存とは違うの」

データベース(DB)とは

  • データを整理して保存する仕組み
  • 検索、追加、更新、削除が簡単にできる
  • 複数の人が同時にアクセスできる
  • データの整合性を保つ

身近な例え

「図書館を想像して。本をただ山積みにするんじゃなくて、ジャンルごとに整理して、目録があって、誰でも探せる。それがデータベースよ」

「なるほど!確かに、ファイルをフォルダに入れるだけだと、探すの大変だもんね」


ロールの制御(Role-Based Access Control:ロールベースアクセスコントロール)

「データベースで一番大事なのが、誰が何をできるかを決めること。これをロールで管理するの」

ロール(Role)とは

  • ユーザーの役割ごとに権限をまとめたもの
  • 「一般ユーザー」「管理者」「閲覧専用」など
  • ロールをユーザーに割り当てる

身近な例え

「学校の役割分担みたいなもの。『生徒』は教室を使える、『先生』は成績をつけられる、『校長先生』は全部の権限を持ってる。一人ひとりに権限を設定するんじゃなくて、役割ごとに決めるの」

ロールの例

  • 一般ユーザー:自分のデータだけ見られる
  • サポートスタッフ:ユーザーのデータを見られる(更新は不可)
  • 管理者:全データの閲覧・更新・削除が可能
  • データベース管理者(DBA):データベースの設定まで変更可能

「ロールを使わないと、100人のユーザーがいたら、100回設定しないといけない。ロールなら『このロールを割り当てる』だけで済むの」


データベースの制約(Constraint:コンストレイント)

「データベースには、間違ったデータが入らないようにするルールがあるの。これを制約って呼ぶわ」

主キー制約(Primary Key Constraint:プライマリーキー・コンストレイント)

意味:各レコード(行)を一意に識別するための値

ルール

  • 絶対に重複しない
  • 空(NULL)にできない
  • 1つのテーブルに1つだけ

身近な例え

「学生証番号みたいなもの。同じ番号の学生は絶対にいないし、番号がない学生もいない。これで『誰のデータか』が確実に分かるの」

ユーザーテーブル
----------------------------------
user_id(主キー) | 名前     | 年齢
----------------------------------
001            | 山本     | 25
002            | 里見     | 27
003            | 佐藤     | 35

user_idが主キー。絶対に重複しない。


一意性制約(Unique Constraint:ユニーク・コンストレイント)

意味:値が重複してはいけない制約

主キーとの違い

  • 主キー:1つだけ、NULLダメ
  • 一意性制約:複数設定可能、NULLは許可される場合がある

身近な例え

「メールアドレスみたいなもの。同じメールアドレスで2人登録できちゃうとおかしいでしょ?でも、メールアドレスを登録しない(NULL)はOKかもしれない」

ユーザーテーブル
---------------------------------------------
user_id | 名前  | email(一意性制約)
---------------------------------------------
001    | 山本  | yamamoto@example.com
002    | 里見  | satomi@example.com
003    | 佐藤  | (NULL)

emailは重複NG、でもNULLはOK。


冗長化制約(NOT NULL Constraint:ノットヌル・コンストレイント)

意味:空の値(NULL)を許さない制約

身近な例え

「名前の欄が空白だと困るでしょ?『この人誰?』ってなる。だから『名前は必須!』って決めるの」

商品テーブル
------------------------------------
product_id | 商品名(NOT NULL) | 価格
------------------------------------
001       | ノートPC        | 80000
002       | (エラー!)      | 50000  ←商品名がないのでダメ

GRANT文(権限付与:グラント文)

「データベースで権限を与えるときに使うコマンドがGRANT文よ」

GRANT文の基本

GRANT 権限 ON テーブル名 TO ユーザー名;

Privileges(プリビレッジ:特権・権限)

  • SELECT:データを見る権限
  • INSERT:データを追加する権限
  • UPDATE:データを更新する権限
  • DELETE:データを削除する権限
  • ALL:すべての権限

身近な例え

「図書館の利用カードみたいなもの。『一般カード』は本を読むだけ、『司書カード』は本を追加・削除できる」

-- 山本に、ユーザーテーブルの閲覧権限を付与
GRANT SELECT ON users TO yamamoto;

-- 佐藤に、すべてのテーブルのすべての権限を付与
GRANT ALL ON *.* TO sato;

-- サポートスタッフ・ロールに、閲覧と更新権限を付与
GRANT SELECT, UPDATE ON users TO support_staff;

「逆に、権限を取り消すときはREVOKE文(リボーク)を使うの」

REVOKE SELECT ON users FROM yamamoto;

ロールフォワード(Roll Forward:ロールフォワード)

「データベースが壊れたとき、どうやって復旧するか知ってる?」

「バックアップから戻す…?」

「そう!でも、バックアップを取ったのデータはどうする?」

ロールフォワードとは

  • バックアップを復元した後、更新ログを使って最新状態まで復旧する技術
  • 「時間を進める」イメージ

更新前ログと更新後ログ

  • 更新前ログ(Before Image):変更前のデータ
  • 更新後ログ(After Image):変更後のデータ

身近な例え

「作文を書いてたら、パソコンがフリーズ。昨日のバックアップはあるけど、今日書いた部分が消えちゃった!でも、『今日の作業記録』(ログ)があれば、昨日のバックアップに今日の作業を再現できるでしょ?」

復旧の流れ

1. バックアップを復元(例:午前0時の状態)
   ↓
2. 更新ログを再生(午前0時~障害発生時刻まで)
   ↓
3. 最新状態まで復旧完了!

【状況】
- 午前0時:バックアップ取得
- 午前9時:ユーザーAが登録(ログ記録)
- 午前10時:ユーザーBが更新(ログ記録)
- 午前11時:サーバー故障!

【復旧】
1. 午前0時のバックアップを復元
2. 午前9時のログを再生 → ユーザーA登録
3. 午前10時のログを再生 → ユーザーB更新
4. 午前11時直前の状態まで復旧完了!

「逆に、間違った操作を取り消すロールバック(Roll Back)もあるわ。これは『更新前ログ』を使って、時間を戻すの」


📖 里見の解説:最新のデータ管理技術

データレイク(Data Lake:データレイク)

「最近、データレイクって聞いたことない?」

「聞いたことあるけど…湖?」

「そう!データの湖よ」

データレイクとは

  • あらゆるデータをそのまま保存する場所
  • 構造化データ(データベースのテーブル)
  • 非構造化データ(画像、動画、ログファイル)
  • 整理せずに、まず全部貯める

従来のデータベースとの違い

  • データベース:整理された図書館(本はジャンル別に整理)
  • データレイク:倉庫(とりあえず全部放り込む)

身近な例え

「部屋の整理を想像して。『後で整理するから、とりあえず全部この箱に入れておこう』って大きな箱。それがデータレイク。必要になったら取り出して整理する」

メリット

  • どんなデータでも保存できる
  • 後から用途を決められる
  • AIの学習データに最適

デメリット

  • 管理しないとデータ沼(Data Swamp)になる
  • セキュリティ設定が難しい
  • 何があるか分からなくなる

データリネージ(Data Lineage:データリネージ)

「データレイクが大きくなると、『このデータ、どこから来たの?』って分からなくなるの。それを追跡する仕組みがデータリネージよ」

データリネージとは

  • データの系譜履歴を追跡する仕組み
  • どこから来て、どう加工されて、どこに行ったか

身近な例え

「食品のトレーサビリティみたいなもの。このお肉は、どこの牧場で育って、どこで加工されて、どのルートでスーパーに来たか。データリネージも同じで、『このデータは元々どこの誰が作って、どう加工されたか』を追跡するの」

【データの流れ】
メタCのユーザー登録
  ↓
アプリケーションサーバー(加工:氏名を分割)
  ↓
データベース(保存:users テーブル)
  ↓
データレイク(集約:分析用にコピー)
  ↓
AI分析(利用:年齢分布を分析)

「データリネージがあれば、『この分析結果、元のデータに間違いがあったらどうなる?』って逆算できるの」

セキュリティ面での重要性

  • 個人情報がどこに流れたか追跡
  • 不正アクセスの影響範囲を特定
  • GDPR(EU一般データ保護規則)対応

📖 里見の解説:高度なセキュリティ技術

EDR(Endpoint Detection and Response:エンドポイント・ディテクション・アンド・レスポンス)

「データベースサーバーを守る技術で、最近注目されてるのがEDRよ」

EDRとは

  • エンドポイント(PC、サーバー)の異常な動きを検知
  • ウイルス対策ソフトより高度
  • 攻撃を検知したら自動で対応

従来のウイルス対策ソフトとの違い

  • ウイルス対策ソフト:既知のウイルスをブロック(門番)
  • EDR:異常な動きを検知して対応(監視カメラ+警備員)

身近な例え

「お店の警備を想像して。従来の警備は『指名手配犯が来たら捕まえる』。でもEDRは『怪しい動きをしてる人を監視して、万引きしそうなら声をかける』って感じ」

EDRができること

  • 異常なプロセスの検知
  • 不審なファイル操作の監視
  • ネットワーク通信の監視
  • 攻撃を検知したら自動で隔離
  • 詳細なログを記録(フォレンジック)

【攻撃の検知】
通常:データベースサーバーは、データベースソフトだけが動いてる
異常:突然、見慣れないプロセスが起動
EDR:「怪しい!これは攻撃かも」→ 管理者に通知 + プロセスを停止

SOAR(Security Orchestration, Automation and Response:セキュリティ・オーケストレーション・オートメーション・アンド・レスポンス)

「EDRが『異常を検知』するなら、SOARは『その後の対応を自動化』するの」

SOARとは

  • セキュリティ対応を自動化する仕組み
  • 複数のセキュリティツールを連携
  • 人間の判断を減らして高速対応

身近な例え

「火災報知器が鳴ったら、自動でスプリンクラーが作動して、消防署に通報して、館内放送が流れる。それが全部自動。SOARも同じで、攻撃を検知したら、自動でファイアウォール設定を変更して、管理者に通知して、ログを保存するの」

SOARの流れ

1. EDRが異常を検知
   ↓
2. SOARが起動
   ↓
3. 自動で対応を実行
   - 該当サーバーをネットワークから隔離
   - ファイアウォールで通信遮断
   - 管理者にメール + Slack通知
   - インシデント管理システムにチケット作成
   - ログを自動で保存
   ↓
4. 管理者が詳細調査

メリット

  • 対応が速い(秒単位)
  • 人為ミスがない
  • 24時間365日対応
  • 管理者の負担軽減

IoC(Indicator of Compromise:インディケーター・オブ・コンプロマイズ)

「SOARが『何を見て攻撃と判断するか』の基準がIoCよ」

IoCとは

  • 侵害の痕跡攻撃の兆候
  • 「これがあったら攻撃されてる」という証拠

身近な例え

「泥棒が入った痕跡みたいなもの。『窓が割れてる』『足跡がある』『金庫がこじ開けられてる』。これがIoC。IoCがあれば『侵入された!』って分かるの」

IoCの例

  • 特定の不正IPアドレスへの通信
  • マルウェアのファイルハッシュ値
  • 不審なドメイン名へのアクセス
  • 異常なログイン時刻・回数
  • 特定のファイル名の出現

【IoCの検知】
IoC情報:「IPアドレス 203.0.113.99 は攻撃者のサーバー」
ログ監視:「あ、このIPに通信してる!」
SOAR:「IoCに一致!攻撃だ!」→ 自動遮断

IoC情報の共有

  • 世界中のセキュリティ組織がIoCを共有
  • ISAC(前に教えたわね)でも共有
  • 「この攻撃、他の会社でも起きてる!」って分かる

CASB(Cloud Access Security Broker:キャスビー)

「データをクラウドに保存する会社が増えてるけど、その通信を監視するのがCASBよ」

CASBとは

  • 企業とクラウドサービスので通信を監視
  • 不正なアクセスやデータ流出を防ぐ
  • 「クラウドの関所」

身近な例え

「国境の検問所みたいなもの。会社のデータをクラウドに送る前に、『これ、持ち出していいデータ?』『怪しい人じゃない?』ってチェックするの」

CASBができること

  1. 可視化:誰が、どのクラウドを、どれだけ使ってるか
  2. コンプライアンス:機密情報の流出を防ぐ
  3. 脅威防御:マルウェアのアップロードを防ぐ
  4. データ保護:暗号化してクラウドに送る

【CASBの動作】
社員:「この顧客リストをGoogle Driveにアップロード」
CASB:「待った!これは機密情報!」
     「暗号化してからアップロードします」
     「管理者にも通知しました」

なぜ必要?

  • 社員が勝手にクラウドを使う(シャドーIT)
  • 個人用クラウドに仕事のファイルを保存
  • 退職者がデータを持ち出す

「CASBがあれば、そういう危険を防げるの」


📖 里見の解説:データベースの種類

従来のデータベース:リレーショナルデータベース(RDB)

「今まで説明してたのは、リレーショナルデータベース(RDB)。表(テーブル)形式でデータを保存するタイプよ」

特徴

  • 表形式(行と列)
  • SQL言語で操作
  • データの整合性が高い
  • 銀行、企業の基幹システムで使われる

「でも最近、RDBじゃないNoSQLデータベースが増えてるの。用途に応じて使い分けるのが大事」


KVS(Key-Value Store:キーバリューストア)データベース

KVSとは

  • キー(鍵)バリュー(値)の組み合わせで保存
  • シンプルで超高速

身近な例え

「ロッカーみたいなもの。『A-001』のロッカーを開けると、中に荷物が入ってる。キーが『A-001』、バリューが『荷物』」

キー         | バリュー
--------------------------
user:1001   | {"name":"山本", "age":25}
session:abc | {"login_time":"2025-01-01 10:00"}
cart:yamamoto| ["商品A", "商品B"]

用途

  • セッション管理
  • キャッシュ(よく使うデータの一時保存)
  • リアルタイムランキング

代表例:Redis、Memcached、Amazon DynamoDB


ドキュメント型データベース(Document Database)

ドキュメント型とは

  • JSON形式でデータを保存
  • 1つのドキュメントに複雑なデータを入れられる
  • 柔軟な構造

身近な例え

「履歴書を想像して。1人の履歴書には、名前、住所、職歴、資格…いろんな情報が1枚に入ってる。ドキュメント型も同じで、1人のユーザー情報を1つのドキュメントにまとめるの」

{
  "user_id": "1001",
  "name": "山本慎也",
  "age": 25,
  "address": {
    "zip": "100-0001",
    "city": "東京都",
    "street": "千代田区"
  },
  "hobbies": ["VR", "プログラミング"],
  "friends": [
    {"name": "里見", "relation": "恋人"},
    {"name": "佐藤", "relation": "同僚"}
  ]
}

「RDBだと、addressやfriendsは別テーブルになるけど、ドキュメント型は1つにまとめられるの」

用途

  • コンテンツ管理システム(CMS)
  • ユーザープロファイル
  • カタログ・商品情報

代表例:MongoDB、Couchbase、Amazon DocumentDB


カラムファミリー型データベース(Column-Family Database)

カラムファミリー型とは

  • 列(カラム)単位でデータを保存
  • 大量のデータを高速に処理
  • 分散処理に強い

RDBとの違い

  • RDB:行単位で保存(1人のデータをまとめて保存)
  • カラムファミリー型:列単位で保存(全員の「名前」をまとめて保存)

身近な例え

「クラスの出席簿を想像して。普通は『山本くんの出席状況』を横に見る(行単位)。でもカラムファミリー型は『1月10日の全員の出席』を縦に見る(列単位)」

メリット

  • 特定の列だけ取り出すのが超高速
  • 圧縮効率が良い(同じ列は似た値が多い)

用途

  • 時系列データ(株価、ログ)
  • IoTセンサーデータ
  • 大規模分析

代表例:Apache Cassandra、HBase、Google Bigtable


グラフ型データベース(Graph Database)

グラフ型とは

  • ノード(点)エッジ(線)でデータを表現
  • 関係性を高速に検索

身近な例え

「SNSの友達関係を想像して。『山本』という人と『里見』という人が『恋人』という関係で繋がってる。これがグラフ型の得意分野」

(山本) --[恋人]--> (里見)
(山本) --[友達]--> (佐藤)
(里見) --[同僚]--> (佐藤)
(結城) --[元恋人]--> (山本)

「『山本の友達の友達は誰?』みたいな複雑な関係を一瞬で検索できるの」

用途

  • SNSの友達推薦
  • 不正検知(怪しい取引の関係を追跡)
  • ナレッジグラフ
  • おすすめ商品(この商品を買った人は、こんな商品も…)

代表例:Neo4j、Amazon Neptune、ArangoDB


データベースの選び方まとめ

データベース種類 特徴 向いてる用途
RDB 表形式、整合性重視 銀行、会計、基幹システム
KVS シンプル、超高速 キャッシュ、セッション
ドキュメント型 JSON、柔軟な構造 CMS、ユーザー情報
カラムファミリー型 列単位、大量データ ログ、IoT、分析
グラフ型 関係性、繋がり SNS、推薦、不正検知

「どれが一番いい、じゃなくて、用途に合わせて選ぶのが大事なの」


⚠️ 結城の攻撃開始

その時、佐藤のセキュリティ監視システムがアラートを発した。

「異常なデータベースアクセス検知!EDRが反応しています!」

結城は、メタCの古いバージョンのデータベースに脆弱性を見つけ、不正アクセスを試みていた。

【攻撃の流れ】
1. 結城がSQLインジェクション攻撃を実行
2. ロールの権限設定ミスを突く
3. 一般ユーザー権限で管理者テーブルへアクセス試行

しかし、メタCのセキュリティは結城の予想を超えていた。

防御の流れ

1. EDRが異常なSQLクエリを検知
   ↓
2. SOARが自動起動
   - 該当IPアドレスを遮断
   - データベースへのアクセスを一時停止
   - 佐藤にSlack通知
   ↓
3. CASBがログを記録
   - IoC情報と照合
   - 「このIP、過去にも攻撃してる!」
   ↓
4. 佐藤が詳細分析
   - データリネージで影響範囲を確認
   - 「幸い、データは読まれていない」
   ↓
5. 警察に通報

「完璧な防御…EDR、SOAR、CASB、全部導入されてる…」

結城は、もはや勝ち目がないことを悟った。


💑 安堵のひととき

攻撃が阻止された夜、山本と里見はメタCのプライベートワールドで話していた。

「里見、今日もありがとう。データベースのセキュリティ、すごく奥が深いね」

「うん。ロール、制約、ログ、最新のセキュリティ技術…全部大事なの。どれか1つでも欠けたら、結城に侵入されてたかもしれない」

「EDRとSOARの連携、本当にすごかったね。あれ、秒単位で対応してたよね?」

「そう。人間が判断するより速い。だから最新の攻撃にも対応できるの」

山本が里見の手を握った。

「里見のおかげで、僕もセキュリティのことがすごく分かってきた。NoSQLデータベースの種類とか、初めて知ったよ」

「慎也、本当に理解が速いわ。KVS、ドキュメント型、カラムファミリー型、グラフ型…全部説明できる?」

「うん!KVSはロッカー、ドキュメント型は履歴書、カラムファミリー型は出席簿を縦に見る、グラフ型は友達関係!」

「完璧!100点よ」

里見が微笑んだ。

「ねぇ、里見。結城の攻撃、これで本当に終わりかな?」

「警察も動いてるし、メタCのセキュリティも万全。もう大丈夫よ」

「うん…でも、油断はしないようにするね」

「それでいいの。セキュリティは、継続することが一番大事だから」

二人は夜空を見上げながら、静かな時間を過ごした。


😤 結城の諦念

一方、結城は自室で項垂れていた。

「もう…無理…EDR、SOAR、CASB…全部最新のセキュリティ技術が導入されてる」

画面には、「Access Blocked」「Security Alert」の文字が並んでいた。

「データベースにも入れない…ロールの権限設定も完璧…ログも全部記録されてる」

「IoC情報も共有されて、私のIP、もうブラックリストに載ってる…」

結城の元に、警察からの呼び出し状が届いていた。

「不正アクセス禁止法違反、電子計算機損壊等業務妨害罪…複数の容疑…」

結城の目から、涙がこぼれた。

「山本…里見…お砂糖…許して…でも、もう遅い…」

長い復讐劇は、ついに終わりを迎えた。


📚 用語まとめ

用語 読み 意味・用途
DB データベース データを整理して保存する仕組み。検索、追加、更新、削除が簡単にできる。
ロール ロール ユーザーの役割ごとに権限をまとめたもの。「一般ユーザー」「管理者」など。
主キー制約 プライマリーキー・コンストレイント 各レコードを一意に識別する値。重複NG、NULLもNG。
一意性制約 ユニーク・コンストレイント 値が重複してはいけない制約。NULLは許可される場合あり。
冗長化制約 ノットヌル・コンストレイント 空の値(NULL)を許さない制約。必須項目に設定。
GRANT文 グラント文 データベースで権限を付与するSQLコマンド。
Privileges プリビレッジ 権限・特権。SELECT、INSERT、UPDATE、DELETE、ALLなど。
ロールフォワード ロールフォワード バックアップを復元後、更新ログで最新状態まで復旧する技術。時間を進める。
更新前ログ コウシンマエログ 変更前のデータ(Before Image)。ロールバックに使用。
更新後ログ コウシンゴログ 変更後のデータ(After Image)。ロールフォワードに使用。
データレイク データレイク あらゆるデータをそのまま保存する場所。構造化・非構造化問わず貯める。
データリネージ データリネージ データの系譜・履歴を追跡する仕組み。どこから来て、どう加工されたか。
EDR イーディーアール Endpoint Detection and Response。エンドポイントの異常な動きを検知して対応。
SOAR ソアー Security Orchestration, Automation and Response。セキュリティ対応を自動化。
IoC アイオーシー Indicator of Compromise。侵害の痕跡・攻撃の兆候。
CASB キャスビー Cloud Access Security Broker。企業とクラウドの間で通信を監視。
RDB アールディービー Relational Database。リレーショナルデータベース。表形式でデータを保存。
NoSQL ノーエスキューエル RDBではない新しいタイプのデータベースの総称。
KVSデータベース ケーブイエスデータベース Key-Value Store。キーと値の組み合わせで保存。シンプルで超高速。
ドキュメント型 ドキュメントガタ JSON形式でデータを保存。柔軟な構造。例:MongoDB
カラムファミリー型 カラムファミリーガタ 列単位でデータを保存。大量データ処理に強い。例:Cassandra
グラフ型 グラフガタ ノードとエッジで関係性を表現。SNS、推薦システムに最適。例:Neo4j

🎓 試験対策ポイント

データベース制約の違い(超重要!)

制約 重複 NULL 個数
主キー制約 ❌ 不可 ❌ 不可 1つだけ
一意性制約 ❌ 不可 ⚠️ 場合による 複数可
NOT NULL制約 ✅ 可 ❌ 不可 複数可

ロールフォワード vs ロールバック

操作 方向 使用ログ 用途
ロールフォワード 時間を進める 更新後ログ 障害復旧
ロールバック 時間を戻す 更新前ログ 誤操作の取消

セキュリティ技術の役割分担

技術 役割 例え
EDR 異常を検知 監視カメラ
SOAR 対応を自動化 自動スプリンクラー
IoC 攻撃の証拠 泥棒の痕跡
CASB クラウド通信監視 国境の検問所

NoSQLデータベースの選び方

  • 高速なキャッシュが欲しい → KVS
  • 柔軟な構造のデータ → ドキュメント型
  • 大量の時系列データ → カラムファミリー型
  • 関係性が重要 → グラフ型
  • 整合性が最優先 → RDB

💡 覚えるコツ

語呂合わせ

データベース制約

「主役は一人、いつもいる」

  • キー:主役(1つだけ)
  • 意性:一人だけ(重複なし)
  • NOT NULLいつもいる(空ではない)

GRANT文の権限

「セイサクシテ(SIUD)」

  • :SELECT(見る)
  • :INSERT(入れる)
  • サク:DELETE(削除)
  • シテ:UPDATE(更新)

NoSQLの種類

「キード・カラ・グラ」

  • キー:KVS(キーバリュー)
  • :ドキュメント型
  • カラ:カラムファミリー型
  • グラ:グラフ型

🎯 実務での応用

データベース設計のベストプラクティス

  1. 最小権限の原則:必要最小限の権限だけ付与
  2. ロールの活用:個別設定ではなくロールで管理
  3. 制約の徹底:主キー、一意性、NOT NULLを適切に設定
  4. ログの保存:更新前・更新後ログを必ず記録
  5. 定期バックアップ:ロールフォワードの準備

セキュリティ監視の3層防御

  1. 予防:CASB、ファイアウォール
  2. 検知:EDR、IoC監視
  3. 対応:SOAR、インシデントレスポンス

データベース選定の判断基準

要件 推奨DB 理由
金融取引 RDB 整合性が最優先
セッション管理 KVS 高速アクセス
CMS ドキュメント型 柔軟な構造
IoTログ カラムファミリー型 大量データ
SNS グラフ型 関係性重視