Skip to main content

AI エージェントの DB アクセスをどうガバナンスするか

Tianzhou · 2026年5月8日

text-to-SQL は AI とデータベースを巡る議論の主役でした。自然言語から AI エージェントに正しい SQL を生成させるのは難しい問題です。しかし、それは話の半分でしかありません。

その問題が解決されたとしましょう: AI エージェントは丁寧にキュレートされたセマンティック層を持ち、一貫して正確な SQL を作るとします。それでも、そのエージェントは見るべきデータだけを見ているか

カスタマーサポートのエージェントが「ユーザー #123 の請求詳細を見せて」と尋ねられたとします。usersbillingpayments を結合する正しい SQL を生成しますが、結果には users テーブルのマスクされていない SSN が含まれます。SQL は正確でした。それでもデータ漏洩は起きました。

正しい SQL を生成することと、データアクセスをガバナンスすることは別の問題です。

問題 1: 正確さ問題 2: ガバナンス
問いSQL は正しいか?エージェントはこのデータを見てよいか?
領域AI / Text-to-SQLセキュリティ / アクセス制御
失敗の形誤ったクエリ結果正しい結果と一緒にデータ漏洩
SELECT * FROM uesrs (タイポ)users テーブルの SSN がアンマスクで返る

ガバナンス無しでは、正しい SQL は責任の温床になります。

人のアクセスと同じガバナンスの基礎

エージェントは、DB を照会する人ユーザーと同じ統制を必要とします。

  • アクセス制御。 最小権限 — エージェントが必要とする DB、スキーマ、テーブルだけにスコープする。営業分析のエージェントが hr.payroll に触る用事はない。

  • データマスキング。 機微カラム — SSN、クレジットカード、医療記録 — はエージェントに結果が届く前に動的にマスクされるべき。人のアナリストが ***-**-1234 を見るなら、エージェントも同じ。

  • 監査ログ。 すべてのクエリを記録する — 何を、いつ、どのエージェントが、どのユーザーの代行で。問題が起きたとき、監査証跡が追跡の手段になる。

エージェントでは賭け金が高いです — 構成を誤ったエージェントは数秒で、人が数時間で持ち出せるよりも多くのデータを持ち出せます。

エージェントで何が違うか

原則は同じ、運用モデルが違います。

エージェントは短命

エージェントは立ち上がり、タスクを実行し、消えます — しばしば数秒で。DB アカウントを払い出して数ヶ月有効なままにするのは不適合です。エージェントには 1 タスクにスコープされ、終わったら即座に取り消される資格情報が必要です。

各エージェントは独自の ID が必要

複数のエージェントが 1 つの DB ユーザーアカウントを共有すると、「誰が何をしたか」の可視性をすべて失います。各エージェントタイプは独自のアクセスポリシーを持つ別個の ID を持つべきです — そうしてアクセス制御と監査ログが意味を持ち続けます。

Just-in-Time アクセスがデフォルトになる

人ユーザーにとって Just-in-Time (JIT) の DB アクセスはベストプラクティスです。エージェントには、立ち上がる → クエリ → 結果を返す → 終わり、という自然なモデルです。タスクの前後に DB アクセスを保持する理由はありません。JIT はセキュリティのアップグレードというより、デフォルトのアーキテクチャになります。

Bytebase でエージェントアクセスをガバナンスする

Bytebase は PostgreSQL、MySQL、SQL Server、Oracle、Snowflake、BigQuery などを横断する AI エージェント向けの統一ガバナンス層を提供します。

組み込みのガバナンス基盤:

  • DB、スキーマ、テーブル単位の細粒度アクセス制御
  • カラム単位の動的データマスキング
  • タスクごとに権限を付与・取り消しする Just-in-Time アクセス
  • エージェントとユーザーの完全な帰属つき監査ログ

エージェント ID は一級概念です。Bytebase はサービスアカウントとワークロード ID をサポートし、各エージェントが独自のアクセスポリシーで動けます。Bytebase MCP サーバー経由で接続するか、API を呼び出してガバナンスを織り込んだ独自のエージェントワークフローを構築できます。

ブログに戻る

データベース開発のスタンダードを体験する