Skip to main content

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

Tianzhou · 2026年5月8日

text-to-SQL は、AI とデータベースを巡る議論をまるごと飲み込んでしまいました。それも当然で、エージェントに自然言語から正しい SQL を生成させるのは本当に難しい問題です。しかし、それは話の半分にすぎません。そして正直に言えば、誰もが安心して語れるのはその半分の方です。

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

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

正しい SQL を生成することと、データアクセスをガバナンスすることは別々の問題です。なのに、人はこの 2 つを混同し続けています。

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

端的に言えば、ガバナンス無しでは、正しい SQL はそのまま責任の温床になります。text-to-SQL が上手くなるほど、あなたはより危険にさらされるのです。

基礎は変わらない

最初の主張で、これは簡単な方です。エージェントは、あなたのデータベースを叩くもう 1 つの主体にすぎません。クエリを実行するどんな人間とも同じ統制を必要とします。

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

  • データマスキング。機微なカラム(SSN、クレジットカード、医療記録)は、結果がエージェントに届く前にマスクされるべきです。人のアナリストが ***-**-1234 を見るなら、エージェントも同じものを見るべきです。相手がロボットだからといって例外はありません。

  • 監査ログ。すべてのクエリを記録する。何が、いつ、どのエージェントによって、どのユーザーの代行で実行されたか。何かがおかしくなったとき(そして必ずおかしくなります)、追跡を可能にするのは監査証跡だけです。

つまり原則そのものは古い話です。新しいのは被害範囲(ブラストレディウス)です。構成を誤ったエージェントは数秒で、人が午後いっぱいかけても出せないほどのデータを持ち出せます。しかも疲れることも、罪悪感を覚えることもありません。

エージェントで本当に違うこと

原則は同じ、運用モデルが違う。面白いのはここからです。

エージェントは短命

エージェントは立ち上がり、1 つのタスクを実行し、消えます。多くの場合は数秒のうちに。長命な DB アカウントを払い出して、それを何ヶ月も放置しておくのは、まったく形が合っていません。エージェントが欲しいのは、単一のタスクにスコープされ、そのタスクが終わった瞬間に取り消される資格情報です。

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

複数のエージェントに 1 つの DB ユーザーを共有させた瞬間、あなたは可視性を捨てたことになります。あのクエリを実行したのは誰か? あるエージェントです。どれか? 分かりません。各エージェントタイプは、独自のアクセスポリシーを持つ別個の ID を担うべきです。さもなければ、アクセス制御も監査ログもただの見せかけです。

Just-in-Time は機能であることをやめ、デフォルトになる

人のユーザーにとって、Just-in-Time (JIT) の DB アクセスは、人を説得してようやく採用してもらうベストプラクティスです。エージェントにとっては、それが単に仕事の自然な形です。立ち上がり、クエリし、結果を返し、終わり。タスクの前にも後にもアクセスを保持する理由がありません。エージェントでは、JIT は売り込むべきセキュリティのアップグレードから、誰も意識する必要のないデフォルトのアーキテクチャへと変わります。

Bytebase はどう扱うか

Bytebase では、エージェントを特別扱いの後付けではなく、一級の主体として扱います。1 つの統一ガバナンス層が、PostgreSQL、MySQL、SQL Server、Oracle、Snowflake、BigQuery、その他の前面に座ります。

このガバナンスの仕組みは、あなたの人間がすでに通っているのと同じ仕組みです。

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

そしてエージェント ID は、その場しのぎではなく組み込みです。Bytebase はサービスアカウントとワークロード ID をサポートし、各エージェントが独自のアクセスポリシーの下で動きます。Bytebase MCP サーバー経由で接続するか、API を直接叩いて、ガバナンスを最初から織り込んだ独自のエージェンティックなワークフローを構築できます。

text-to-SQL を出荷する競争は、たいてい最もきれいなクエリを生成した者が勝ちます。しかし本当に重要な競争は、まだ誰も走っていない競争です。あなたのエージェントがあの完璧なクエリを生成したとき、それが何を見てよいのかを、あなたは正確に把握していますか?

シリーズの他の記事

ブログに戻る

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