Metabase

مهاجرت از مجوزهای قدیمی

در متابیس 56، ما Data sandboxing را به امنیت ردیف و ستون تغییر نام دادیم. عملکرد یکسان است. برخی افراد اصطلاح "data sandboxing" را گیج‌کننده یافتند، بنابراین نام ویژگی را به امنیت ردیف و ستون استانداردتر صنعت تغییر دادیم.

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

خلاصه: ما تنظیم قدیمی Data access را به دو تنظیم تقسیم کردیم: View data و Create Queries. مجوزهای داده شما ممکن است متفاوت به نظر برسند، اما دسترسی تغییر نکرده است.

نحوهٔ مهاجرت مجوزهای شما توسط متابیس

اگر از متابیس 50 یا قدیمی‌تر migrate می‌کنید، متابیس (با یک استثنا) به‌طور خودکار مجوزهای شما را به سیستم جدید به‌روزرسانی می‌کند. در حالی که مجوزهای گروه کمی متفاوت خواهند بود (و امیدواریم آسان‌تر برای استدلال)، گروه‌های شما همان سطوح دسترسی قبلی را خواهند داشت.

چرا سیستم مجوزهای خود را به‌روزرسانی کردیم

تنظیم مجوز اصلی Data access شامل پنج سطح دسترسی بود: unrestricted، impersonated، granular، no self-service، و block. این سطوح در همان محور نیستند. آن‌ها در یک محور ترکیب می‌شدند، اینکه آیا می‌توانستید داده را مشاهده کنید، و در محور دیگر، اینکه آیا می‌توانستید آن داده را کوئری کنید. این یک تنظیم دو بعدی ایجاد کرد:

  • No self-service. گروه‌ها را از استفاده از query builder برای ایجاد یا ویرایش سؤال‌ها محدود می‌کند.
  • Sandbox and block. دسترسی مشاهده و query builder به داده زیربنایی را محدود می‌کند.

ترکیب دو محور (کوئری + مشاهده) به یک تنظیم مجوز واحد می‌توانست رفتار غیرمنتظره ایجاد کند. به‌عنوان مثال، با تغییر دسترسی از "Sandboxed" به "No self-service"، یک ادمین ممکن است فکر کند که دسترسی آن گروه به داده را محدود می‌کند. اما در آن مورد، گروه به طور بالقوه می‌توانست بیشتر داده ببیند، به شرطی که گروه همچنین دسترسی به کلکسیون‌هایی با مدل‌ها، سؤال‌ها، یا داشبوردهای موجود داشته باشد.

آنچه بازسازی مجوزهای داده ما انجام می‌دهد

  • دسترسی مشاهده و دسترسی کوئری را به دو بعد مجوز تقسیم می‌کند. این تقسیم به ادمین‌ها امکان می‌دهد، به‌عنوان مثال، جداول را با یا بدون دسترسی به query builder sandbox کنند (قبلاً امکان پیکربندی sandboxing به‌عنوان فقط مشاهده نبود).
  • مجوزها را آسان‌تر برای استدلال می‌کند. یک مجوز محدودتر هرگز دسترسی بیشتری از یک مجوز کمتر محدود نمی‌دهد.

جدول مهاجرت از مجوزهای قدیمی به جدید

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

قبل از این، متابیس Data access و Native query editing داشت. حالا، متابیس View data و Create queries دارد. در اینجا نحوهٔ مهاجرت هر جفت به سیستم جدید توسط متابیس آورده شده است.

Data accessNative query editing>View dataCreate queries
UnrestrictedYes>Can viewQuery builder and native code
UnrestrictedNo>Can viewQuery builder
No self-serviceNo>Can viewNo
BlockedNo>BlockedNo
ImpersonatedYes>ImpersonatedQuery builder and native code
ImpersonatedNo>ImpersonatedQuery builder
Unrestricted (granular)No>Can viewQuery builder (granular)
Sandboxed (granular)No>Row and column security (granular)Query builder (granular)
No self-service (granular)No>Can viewNo (granular)

سطح دسترسی View No self-service (deprecated)

اگر تنظیم مجوز No self-service (deprecated) را در View data برای هر گروهی می‌بینید، باید در برخی مواقع آن را به صورت دستی تغییر دهید.

برای هر گروهی که دسترسی View data آن‌ها به No self-service (deprecated) تنظیم شده است، باید مجوز View data را به یکی از گزینه‌های جدید تغییر دهید:

اگر هیچ اقدامی انجام ندهید، متابیس هر گروهی با دسترسی View data تنظیم‌شده به No self-service (deprecated) را به Blocked در یک نسخه آینده تغییر می‌دهد. ما به‌طور پیش‌فرض به "Blocked"، کم‌مجازترین دسترسی View data، تغییر می‌دهیم تا از هر دسترسی ناخواسته به داده جلوگیری کنیم. اما این تغییر به Blocked می‌تواند باعث شود افراد دسترسی به داده‌ای که قبلاً به آن دسترسی داشتند را از دست بدهند.

چرا نتوانستیم این تنظیم را به صورت دستی migrate کنیم

در سیستم مجوزهای قدیمی، افرادی را در چندین گروه در نظر بگیرید.

  • دسترسی داده Unrestricted به این معنی بود که مسدودسازی‌ها، sandboxها، یا جعل‌هویت‌ها از گروه‌های دیگر شما روی شما تأثیر نمی‌گذارند.
  • دسترسی داده No Self Service به این معنی بود که مسدودسازی‌ها، sandboxها، یا جعل‌هویت‌ها از گروه‌های دیگر شما روی شما تأثیر می‌گذارند.

فرض کنید گروه‌های زیر را در چارچوب مجوزهای قدیمی دارید:

Group AGroup BGroup CGroup DGroup E
Data AccessUnrestrictedNo self-serviceBlockedSandboxedImpersonated

اگر شما عضو Group A و یکی از Group C، D، یا E هستید، دسترسی کامل و بدون محدودیت به داده خواهید داشت، بدون هیچ مسدودسازی، sandbox، یا جعل‌هویتی اعمال شده.

اگر شما عضو Group B و یکی از Group C، D، یا E هستید، دسترسی محدود به داده خواهید داشت: یا مسدود شده، sandbox شده، یا جعل‌هویت شده.

می‌توانستیم مجوزها را اینطور migrate کنیم:

Group AGroup BGroup CGroup DGroup E
View dataCan view?BlockedRow and column securityImpersonated
Create queriesQuery Builder onlyNoNoQuery Builder onlyQuery Builder only

نمی‌توانیم تصمیم بگیریم View data Group B چه باید باشد. اگر آن را به Can view تغییر دهیم، شخص تحت تأثیر تنظیمات Blocked، Row and column security، یا Impersonated در گروه دیگرش قرار نمی‌گیرد. اگر آن را به Blocked تنظیم کنیم، ممکن است دسترسی به داده‌ای که فکر می‌کنید باید به آن دسترسی داشته باشند را از دست بدهند. بنابراین یک تنظیم موقت، No self-service (legacy) ایجاد کردیم تا این انتقال (موقت) ناخوشایند را مدیریت کنیم.

برای برخی تنظیمات مجوز با گروه‌هایی که دسترسی داده "No self-service" و "Sandboxed" دارند، ممکن است نیاز به ایجاد یک گروه جدید برای تکرار تنظیمات در 50 یا بالاتر داشته باشید

در متابیس 49، دسترسی داده (مجازتر) "No self-service" نمی‌توانست دسترسی (کمتر مجاز) "Sandboxed" را override کند، می‌توانستید متابیس 49 را به روش‌هایی تنظیم کنید که استدلال دربارهٔ آن‌ها دشوار بود.

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

به‌عنوان مثال، فرض کنید دو گروه در متابیس 49 تحت مجوز دسترسی داده قدیمی دارید، گروه All users و گروه Foo.

تنظیم مجوز در 49:

  • گروه All users دسترسی داده "No self-service" به همه جداول در Sample Database دارد.
  • گروه Foo دسترسی "Sandboxed" به جداول در Sample Database دارد.

این تنظیم دسترسی داده در 49 به افراد امکان می‌داد سؤال‌ها و داشبوردها را در کلکسیون‌هایی که به آن‌ها دسترسی دارند مشاهده کنند. با این حال، افراد در گروه Foo یک نمای sandbox شده از آیتم‌ها را دریافت می‌کردند. در این مورد، دسترسی داده کمتر مجاز "Sandboxed" در گروه Foo دسترسی داده مجازتر "No self-service" در گروه All users را override می‌کرد.

با شروع از متابیس 50، با این حال، تنظیمات مجازتر همیشه تنظیمات کمتر مجاز را override می‌کنند. بنابراین برای نگه داشتن sandboxهای Foo دست‌نخورده، باید گروه All users را طوری تنظیم کنیم که یک تنظیم مجوز View data داشته باشد که کمتر مجاز از تنظیم "Sandboxed" باشد. بنابراین باید مجوز View data را برای All users به "Blocked" تنظیم کنیم.

اما اگر همچنان می‌خواهید همه دیگر که در گروه Foo نیستند آیتم‌ها را در کلکسیون‌هایی که به آن‌ها دسترسی دارند مشاهده کنند، باید یک گروه اضافی، Bar، ایجاد کنید که شامل همه به جز افراد در گروه Foo است، و به آن گروه Bar دسترسی "Can view" به Sample database اعطا کنید. دسترسی "Can view" گروه Bar تنظیم "Blocked" گروه All Users را override می‌کند، و آن‌ها قادر به مشاهده سؤال‌ها و داشبوردها خواهند بود. در همین حال، گروه Foo همچنان sandboxهای خود را دارد. در اینجا خلاصه‌ای از تنظیمات برای 50 که نیاز دارید آورده شده است:

تنظیم مجوز در 50:

  • گروه All users برای همه جداول در Sample database "Blocked" است.
  • گروه Foo مجوز View data "Row and columns security" برای همه جداول در Sample database دارد.
  • یک گروه جدید ایجاد کنید، Bar، که شامل همه در گروه All users به جز افراد در گروه Foo است. مجوز View data این گروه Bar را به "Can view" برای Sample database تنظیم کنید.

مطالعهٔ بیشتر