リソース

/

ACP 実習ノート

[第25回] MCP経由のDB参照でも権限は維持された — QueryPie Community MCP

DBアクセス制御

2026年11月9日

AIツールにDBをつなぐ際、誰が何を見られるかが気になった。必要な注文は参照し、精算など別管理のデータは既存権限で保護したい。

 

CommunityにはMCPサーバーがある。Inspectorで注文は取得でき、同じ人の精算参照は権限エラーで遮断された。両方とも監査に残った。

 

 

既存の開発者アカウントで始める

 

Demo DeveloperのOrders Control LabへのRead-Only・Selectを使い、MCP用の追加権限は付けなかった。

 

画面1. Demo Developerの注文DB参照権限を確認した。
画面1. Demo Developerの注文DB参照権限を確認した。

 

注文は許可、精算は制限という違いがMCPでも維持されるかを特に確認したかった。

 

 

QueryPieアドレスを登録しMCP接続する

 

MCPはAIツールなどが外部機能を呼ぶ接続方式だ。今回は要求と応答を直接見られるInspectorで試した。

 

Mac上のQueryPie http://localhost:8000/api/mcpへStreamable HTTPで接続した。クライアントへDBパスワードは入力不要だった。

 

画面2. MCPクライアントへQueryPie Communityを接続先として登録した。
画面2. MCPクライアントへQueryPie Communityを接続先として登録した。

 

Demo Developerでログイン済みのブラウザから認証するとConnectedになった。iam_user_meはDemo Developer・demo-devを返し、誰の権限か確認できた。

 

画面3. MCPの認証ユーザーがDemo Developerと確認した。
画面3. MCPの認証ユーザーがDemo Developerと確認した。

 

 

許可済み一覧から注文DBを選ぶ

 

dac_list_accessible_connectionsでWebと同じOrders Control LabとOrders Demo MySQLが返った。

 

画面4. 現ユーザーに許可されたDB接続2件が返った。
画面4. 現ユーザーに許可されたDB接続2件が返った。

 

次の参照用cluster_uuidも含まれ、Orders Control Labの値を指定した。既存接続と権限を使えるため準備が簡単だった。

 

 

注文1件を参照する

 

この版のツール名はdac_query。4003の番号・状態・金額を取得するSELECTを入力した。

 

123
SELECT order_id, status, total_amountFROM orders_control.ordersWHERE order_id = 4003;

 

4003、DELIVERED、18500.00の1行が返り、以前の変更をMCPでも確認できた。

 

画面5. MCPから注文1件が返った。
画面5. MCPから注文1件が返った。

 

 

同じ接続でも精算テーブルは開けない

 

同じツール・接続でsettlement_detailsから4002の精算番号と金額を検索した。

 

123
SELECT settlement_id, order_id, settlement_amountFROM orders_control.settlement_detailsWHERE order_id = 4002;

 

結果ではなくテーブル権限がないと返った。注文を参照できても別途制限した精算まで開かなかった。

 

画面6. 精算参照は既存制限で遮断された。
画面6. 精算参照は既存制限で遮断された。

 

MCP用に規則を作り直さず同じ基準が適用された。必要参照と機密保護を両立し、新ツールごとに別の権限体系を作る手間が減る。

 

 

監査にもMCP経由と残る

 

Audit → Databases → Query Auditに両方あり、人はDemo Developer、接続はOrders Control Labだった。

 

注文はSuccess、Executed From MCPで、既存画面で誰がどの経路で参照したか分かった。

 

画面7. 注文記録に人・接続・MCP経由が残った。
画面7. 注文記録に人・接続・MCP経由が残った。

 

精算はFailure・Preventedで、詳細にSELECTと権限エラーがあった。クライアントの拒否結果を管理者も確認できた。

 

画面8. 遮断精算SQLとエラーも詳細に残った。
画面8. 遮断精算SQLとエラーも詳細に残った。

 

接続後も管理が従来どおりなのがよかった。同じ利用者・DB権限を使い、同じ監査でSQLを確認でき、AI連携でも既存体系を活用できる点が魅力的だった。

 

QueryPie Community 11.6.7とMCP Inspector 2.14.0で、直接ツールを呼び認証、注文、精算遮断、監査を確認した。

 

参考: Community MCP設定ガイド · Query Audit