Metabase

عیب‌یابی مجوزهای داده

اگر یک شخص سطح دسترسی اشتباه به داده‌ای که توسط یک سؤال یا کوئری برگردانده می‌شود دارد، باید سطوح مختلف مجوزهای داده را عیب‌یابی کنید، از جزئی‌ترین شروع کنید.

مجوزهای ردیف و ستون

  • [عیب‌یابی امنیت ردیف و ستون][troubleshooting-row-and-column-security].

مجوزهای کوئری native (SQL)

مجوزهای جدول یا schema

یک گروه کاربری نمی‌تواند به ویرایشگر SQL دسترسی پیدا کند

  1. اطمینان حاصل کنید که اسکریپت‌ها با غیرفعال کردن extensionهای مرورگر و refresh کردن مرورگر بارگذاری می‌شوند.
  2. به Admin > Permissions بروید و گروه مرتبط را انتخاب کنید.
  3. پایگاه داده‌ای که می‌خواهید دسترسی SQL به آن بدهید را پیدا کنید.
  4. از منوی dropdown View data، Can view را انتخاب کنید.
  5. از منوی dropdown Create queries، Query builder and native را انتخاب کنید.
  6. بررسی کنید که آیا مشکل دسترسی رفع شده است.

برای اطلاعات بیشتر دربارهٔ انواع مختلف مجوزهای پایگاه داده، بخش دسترسی داده را در مستندات مجوزهای ما بررسی کنید.

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

  1. به Admin > People بروید و بررسی کنید که آیا شخص در بیش از یک گروه با مجوزهای متضاد است.
  2. اگر شخص در چندین گروه است:
    • شخص را از گروه با مجوزهای گسترده‌تر حذف کنید، یا
    • به Admin > Permissions بروید و نوع مجوز Data access را تغییر دهید.
  3. بررسی کنید که آیا مشکل دسترسی رفع شده است.

توضیح

اگر یک شخص عضو چندین گروه است، متابیس مجازترین سطح دسترسی را در همه گروه‌هایی که عضو آن‌ها هستند اعطا می‌کند.

به‌عنوان مثال، اگر یک شخص عضو دو گروه است — یکی که دسترسی [View data] "Can view" به یک پایگاه داده یا جدول اعطا می‌کند و دیگری که دسترسی "Blocked" به آن پایگاه داده اعطا می‌کند — آن شخص قادر خواهد بود داده را مشاهده کند.

به خاطر داشته باشید که همه عضو گروه All Users هستند. توصیه می‌کنیم مجوزها را از گروه All Users لغو کنید، و گروه‌های جدید ایجاد کنید تا مجوزها را به‌صورت انتخابی به منابع داده خود اعمال کنید.

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

  1. به Admin > Permissions بروید و گروه کاربری را انتخاب کنید.
  2. پایگاه داده یا جدولی که می‌خواهید محدود کنید را انتخاب کنید.
  3. مجوزهای View data را روی Blocked تنظیم کنید و روی Save کلیک کنید.
  4. بررسی کنید که آیا مشکل دسترسی رفع شده است.

توضیح

اگر به یک گروه دسترسی View data "Can view" به یک پایگاه داده یا جدول اعطا کرده‌اید، افراد می‌توانند سؤال‌ها و داشبوردهای ذخیره‌شده که از آن پایگاه داده استفاده می‌کنند را مشاهده کنند، تا زمانی که آن سؤال‌ها و داشبوردها در یک کلکسیونی که به آن دسترسی دارند ذخیره شده باشند.

مجوز داده Blocked در نسخه‌های Pro و Enterprise متابیس در دسترس است. اگر دسترسی یک گروه به یک پایگاه داده را مسدود کنید، اعضای آن گروه نمی‌توانند هیچ داده‌ای از این پایگاه داده را ببینند، صرف نظر از مجوزهای کلکسیون آن‌ها.

دریافت یک پیام خطای "permission denied"

اگر یک پیام خطا دریافت می‌کنید که چیزی مثل "permission denied to <your table>" می‌گوید، باید بررسی کنید که آیا اپلیکیشن متابیس مجوزهای صحیح برای کوئری کردن پایگاه داده شما را دارد.

  1. به ویرایشگر SQL بروید و یک کوئری پایه علیه جدول یا schema مورد نظر اجرا کنید:
    SELECT 1
    FROM <your table>;
    
  2. اعتبارنامه‌هایی که متابیس برای اتصال به پایگاه داده شما استفاده می‌کند را دریافت کنید. اگر مطمئن نیستید آن اعتبارنامه‌ها چیست، از ادمین پایگاه داده خود بپرسید.
  3. با استفاده از یک اپلیکیشن دیگر (مثل CLI یا IDE پایگاه داده خود)، با استفاده از همان اعتبارنامه‌هایی که متابیس برای اتصال به آن پایگاه داده استفاده می‌کند به پایگاه داده خود متصل شوید، و کوئری از مرحله 1 را اجرا کنید.
  4. اگر نمی‌توانید به جدول یا schema در هر دو مرحله 1 و 3 دسترسی پیدا کنید، از ادمین پایگاه داده خود بخواهید:
    • امتیازات پایگاه داده را به نقشی که متابیس برای اتصال استفاده می‌کند اعطا کند، یا
    • مجموعه‌ای از اعتبارنامه‌های پایگاه داده با مجوزهای صحیح ارائه دهد.
  5. بررسی کنید که آیا مشکل دسترسی رفع شده است.

توضیح

پایگاه داده شما مجموعه‌ای از مجوزهای خود را دارد که برای هر شخص (یا اپلیکیشن) که وارد می‌شود پیکربندی شده است.

مجوزهای پایگاه داده در سطح اتصال پایگاه داده شما اعمال می‌شوند، قبل از اینکه مجوزهای داده و کلکسیون شما در متابیس اعمال شوند.

این به این معنی است که تنظیمات پیکربندی شده در سمت پایگاه داده می‌توانند از اتصال متابیس به schemaها یا جداول خاص جلوگیری کنند، صرف نظر از آنچه در سمت متابیس تنظیم کرده‌اید.

بررسی دسترسی کسی به یک جدول یا schema

  1. یک پنجره مرورگر ناشناس باز کنید.
  2. به‌عنوان شخص مورد نظر به متابیس وارد شوید.
  3. یک سؤال، داشبورد، یا کوئری native اجرا کنید تا تأیید کنید که شخص می‌تواند داده‌ای که باید ببیند را ببیند.

آیا مشکل متفاوتی دارید؟

آیا هنوز گیر کرده‌اید؟

اگر نمی‌توانید مشکل خود را با استفاده از راهنماهای عیب‌یابی حل کنید: