پرش به محتوا
شروع رایگان

انزوای داده در سرور MCP چندمستأجر: چیزی فراتر از «کدام دیتابیس»

مسیریابی درست دیتابیس فقط اولین لایه است — نشتِ واقعی از جای دیگری شروع می‌شود

انزوای داده در سرور MCP چندمستأجر: چیزی فراتر از «کدام دیتابیس»

پاسخ کوتاه: در سرور MCP چندمستأجره، انزوای داده یعنی هر کلید فقط به دیتابیس همان مشتری وصل شود — نه «دیتابیس پیش‌فرض با فیلتر». فرقش در سرقت داده است: اگر کلید مشتری A بتواند مدل را به دیتابیس B هدایت کند، مسیر نشت داده باز است. معماری انزوا در ابرک در همین مقاله.

سه لایه انزوای داده در سرور MCP ابرک

  • لایه ۱ — مسیریابی دیتابیس: کلید به شناسه مستأجر قفل است؛ سوییچ دیتابیس از درون کلاینت ناممکن است
  • لایه ۲ — مدل دسترسی: هر کلید فقط مدل‌های تعریف‌شده را می‌بیند (جدول‌های حساس اصلاً در فهرست نیستند)
  • لایه ۳ — لاگ: هر فراخوانی با کلید، کاربر و نتیجه ثبت می‌شود

سند معماری: سرور MCP ابرک.

وقتی یک سرور MCP روی نصب چنددیتابیسی درست کار می‌کند، یعنی درخواست به دیتابیس درست رسیده — نه اینکه داده‌ی آن دیتابیس از بقیه ایزوله مانده. چرا اکثر سرورهای MCP روی ERP چندمستأجره خراب می‌شوند مشکل رایج «هیچ دیتابیسی انتخاب نشده» را توضیح داد؛ این‌جا سه لایه‌ی دیگرِ انزوا را می‌بینیم که بعد از حل آن مشکل هنوز باز می‌مانند.

چرا مسیریابی درست، انزوا را تضمین نمی‌کند؟

فرض کنید درخواست درست به دیتابیس مستأجر A رسیده. سؤال بعدی این است: کلید MCP که این درخواست را زده، اصلاً به کدام کاربر وصل است، و آن کاربر در همان دیتابیس چه دسترسی‌ای دارد؟ اگر کلید به یک کاربر سیستمی (superuser) وصل باشد، محدودیت رکورد اودو (record rule) هم دور زده می‌شود — مسیریابی دیتابیس هیچ ربطی به این لایه ندارد.

OWASP این خطر را چه می‌نامد؟

فهرست OWASP برای اپلیکیشن‌های مبتنی بر مدل زبانی بزرگ، دو ریسک مرتبط را جدا نام می‌برد: Excessive Agency (وقتی عامل هوش مصنوعی اجازه‌ی بیش از نیاز واقعی‌اش دارد) و Sensitive Information Disclosure (نشت داده‌ای که قرار نبوده در دسترس همان مکالمه باشد). در یک سرور MCP چندمستأجر، این دو دقیقاً همان‌جایی به هم می‌رسند که مسیریابی دیتابیس تمام می‌شود.

سه لایه‌ی دیگر که باید بسته شود

  • هویت کلید = هویت کاربر واقعی. وصل‌کردن یک کلید MCP به کاربر سیستمی باید عمداً غیرممکن باشد، نه فقط توصیه‌شده. اگر ممکن باشد، دیر یا زود کسی همین کار را می‌کند.
  • «همه ممنوع مگر مجاز» روی مدل‌ها، جدا از ACL اودو. کاربر ممکن است در اودو به یک مدل حساس دسترسی داشته باشد (برای کار روزمره‌اش)، ولی همان مدل نباید بدون تصمیم صریح، از مسیر MCP هم در دسترس دستیار هوش مصنوعی باشد — دو سطح تصمیم جدا از هم.
  • مسیر اشتباه باید نشانی درست را اعلام کند، نه سکوت یا خطای عمومی. اگر درخواست به نود اشتباه برسد، پاسخ باید بگوید «فضای کاری شما این‌جا نیست، این‌جا برو» — نه فقط ۴۰۴ ساکت که کاربر را به تلاش دوباره با حدس وامی‌دارد.

روی اودو این‌ها چطور پیاده می‌شوند؟

هر سه لایه در سرور MCP ابرک جدا از مسیریابی دیتابیس پیاده شده‌اند: کلید همیشه به یک کاربر عادی وصل می‌شود، فهرست مدل‌های مجاز روی خودِ کلید تعریف می‌شود (نه استنتاج از دسترسی اودو)، و هر رد شدن — از جمله رد شدن مسیریابی — دلیل و لایه‌ی دقیق را با explain_denial برمی‌گرداند.

دکتر محمد مصطفی‌زاده
دربارهٔ نویسنده دکتر محمد مصطفی‌زاده — دکترای صنایع غذایی، ۲۱ سال تجربهٔ اجرایی در راه‌اندازی رستوران ایرانی و فرنگی، کاست کنترل و کترینگ صنعتی. مشاورهٔ راه‌اندازی رستوران ←

چرا اکثر سرورهای MCP روی ERP ابری چندمستأجره خراب می‌شوند؟

ابرک را رایگان امتحان کنید

شروع رایگان