سطح دسترسی داده
در این صفحه سطح دسترسی مربوط به پایگاهدادهها و جدولها را توضیح میدهیم. اگر هنوز مطالعه نکردهاید، ابتدا نمای کلی دسترسیها را ببینید.
تنظیم سطح دسترسی روی پایگاهداده، اسکیمـا یا جدول
برای تنظیم سطح دسترسی داده روی یک پایگاهداده، اسکیمـا یا جدول برای یک گروه:
- دکمههای Cmd/Ctrl + K را بزنید، عبارت Permissions را جستوجو کنید و روی نتیجهٔ تنظیمات Permissions کلیک کنید. متابیس بهصورت پیشفرض تب Data را باز میکند.
یا:
- روی آیکون چرخدنده در گوشهٔ بالا-راست کلیک کنید.
- گزینهٔ Admin settings را انتخاب کنید.
- روی تب Permissions کلیک کنید؛ این تب هم بهصورت پیشفرض روی تب فرعی Data قرار دارد.
میتوانید سطح دسترسی را بهصورت «بر اساس گروه» یا «بر اساس پایگاهداده» مشاهده و مدیریت کنید.
انواع سطح دسترسی داده
میتوانید انواع سطح دسترسی زیر را روی یک پایگاهداده، اسکیمـا یا جدول تنظیم کنید:
اگر لازم است بسته به اینکه چه کسی وارد شده، پایگاهدادهٔ هدف را عوض کنید، به Database routing نگاه کنید. مسیربندی پایگاهداده بهویژه زمانی مفید است که هر مشتری شما پایگاهدادهٔ جداگانهای داشته باشد.
قبل از اعمال دسترسیهای جزئی، دسترسی گروه All Users را مسدود کنید
قبل از اینکه سطح دسترسیهای دقیقتری را تنظیم کنید، بهتر است ابتدا مطمئن شوید هیچکس به دادهها دسترسی ندارد. از آنجایی که همهٔ کاربران بهطور خودکار عضو گروه All Users هستند، باید این گروه را از دیدن هرگونه داده مسدود کنید.
در مسیر Admin settings > Permissions > Data، دسترسی گروه All Users به پایگاهداده را روی حالت Blocked قرار دهید.
بعد از این مرحله میتوانید بهصورت گزینشی دسترسیهای لازم را به گروههای مختلف بدهید.
سطح دسترسی View data
سطح دسترسی View data مشخص میکند افراد هنگام مشاهدهٔ سؤالات، داشبوردها، مدلها و معیارها چه دادهای را میتوانند ببینند. این سطح دسترسی همچنین تعیین میکند آیا یک گروه میتواند مرورگر مدلها و معیارها را در سایدبار ببیند یا نه. برای مرور پایگاهدادهها، علاوهبر View data، گروه نیاز به سطح دسترسی Create queries روی دادهٔ مربوطه دارد.
سطوح View data شامل موارد زیر است:
تنظیمات View data روی سطوح مختلفی در پایگاهدادهٔ شما اعمال میشود:
| View data permission | Database | Schema | Table |
|---|---|---|---|
| Can view | ✅ | ✅ | ✅ |
| Granular* | ✅ | ✅ | ❌ |
| Row and column security | ❌ | ❌ | ✅ |
| Impersonated | ✅ | ❌ | ❌ |
| Blocked | ✅ | ✅ | ✅ |
* گزینهٔ "Granular" خودش یک نوع سطح دسترسی مستقل نیست؛ بلکه نشان میدهد که دسترسیها در سطوح پایینتر بهصورت جزئی تنظیم شدهاند. برای مثال، میتوانید در سطح اسکیمـا گزینهٔ «Granular» را انتخاب کنید تا برای هر جدول داخل آن اسکیمـا سطح دسترسی جداگانه تعریف کنید.
در نسخهٔ رایگان و متنباز متابیس، مقدار پیشفرض View data برابر با "Can view" است. از آنجا که گزینههای دیگر این تنظیم در نسخهٔ OSS در دسترس نیست، متابیس این تنظیم View data را فقط در نسخههای Pro/Enterprise نمایش میدهد.
برای اینکه مشخص شود یک گروه کدام سؤالها، مدلها و داشبوردها را میتواند ببیند، بهجای این صفحه، سطح دسترسی کالکشنها را ببینید.
سطح دسترسی Can view
قرار دادن مقدار روی Can view یعنی اعضای گروه میتوانند تمام دادههای منبع داده را ببینند، به شرطی که سطح دسترسی کالکشن لازم برای دیدن سؤالها، مدلها و داشبوردها را داشته باشند.
برای دیدن دادهها در بخش Browse databases، گروه علاوهبر این، باید سطح دسترسی Create queries را هم داشته باشد.
سطح دسترسی Granular برای View data
این گزینه به شما امکان میدهد سطح دسترسی View data را برای اسکیمـاها یا جدولهای تکی تنظیم کنید. این گزینه فقط در سطح پایگاهداده و اسکیمـا در دسترس است. اگر برای یک پایگاهداده یا اسکیمـا گزینهٔ Granular را انتخاب کنید، متابیس آن منبع داده را باز میکند و از شما میخواهد برای هر اسکیمـا یا جدول، سطح دسترسی جداگانه تعیین کنید.
برای جدولها میتوانید بین دو حالت Can view یا Sandboxed انتخاب کنید.
امنیت ردیف و ستون (Row and column security)
با این گزینه میتوانید سطح دسترسی در سطح ردیف را بر اساس ویژگیهای کاربر و همچنین نماهای (View) سفارشی تنظیم کنید. این نوع دسترسی فقط در سطح جدول قابل پیکربندی است.
برای جزئیات بیشتر، به صفحهٔ Row and column security مراجعه کنید.
سطح دسترسی Impersonated برای View data
گزینهٔ Impersonated به شما اجازه میدهد تا با استفاده از یک نقش (Role) در پایگاهداده مشخص کنید افراد چه دادهای را میتوانند ببینند و روی چه دادهای میتوانند کوئری بزنند. Impersonation فقط در سطح پایگاهداده قابل تنظیم است، چون متابیس در این حالت به مجوزهایی که به آن نقش پایگاهداده دادهاید اتکا میکند.
بیشتر بخوانید: Impersonated view data permissions.
سطح دسترسی Blocked برای View data
گزینهٔ Blocked تضمین میکند که افراد یک گروه، دادههای این پایگاهداده، اسکیمـا یا جدول را نبینند؛ حتی اگر در سطح کالکشن مجوز دیدن سؤالات را داشته باشند.
سطح دسترسی Blocked را میتوان در سطح پایگاهداده، اسکیمـا یا جدول تنظیم کرد. در عمل، Blocked باعث میشود سطح دسترسی کالکشن بهتنهایی برای دیدن یک سؤال کافی نباشد. مثلاً اگر یک سؤال در کالکشنی قرار داشته باشد که گروه به آن دسترسی دارد، اما آن سؤال روی منبع دادهای کوئری بزند که برای آن گروه Blocked است، اعضای آن گروه تا زمانیکه در گروه دیگری با سطح دسترسی مناسب داده عضو نباشند، نمیتوانند آن سؤال را ببینند.
قرار دادن یک منبع داده روی Blocked برای یک گروه، همیشه مانع از این میشود که اعضای گروه نتایج سؤالات SQL ساختهشده با ویرایشگر native را ببینند، اگر آن سؤالات روی هر جدولی از همان پایگاهداده کوئری بزنند. حتی اگر فقط یک جدول را Block کنید، گروه نتیجهٔ هیچ سؤال SQLای را که روی هر جدولی از آن پایگاهداده اجرا میشود نخواهد دید. دلیلش این است که متابیس هنوز SQL را parse نمیکند، پس نمیتواند بهطور قطعی تشخیص دهد کوئری به جدولی که میخواهید مسدود کنید دسترسی دارد یا نه.
اگر شخصی در یک گروه Blocked، همزمان عضو گروه دیگری هم باشد که سطح دسترسی View data آن روی "Can view" تنظیم شده، دسترسی بازتر آن گروه دوم غالب میشود و آن شخص میتواند سؤال را ببیند.
سطح دسترسی Create queries
این سطح مشخص میکند آیا یک گروه میتواند بر اساس منبع داده، سؤالهای جدید بسازد یا نه. ساخت کوئری شامل امکان drill-through و فیلتر کردن سؤالات و بهطور کلی هر چیزی است که نتایج را تغییر میدهد. این سطح دسترسی همچنین مشخص میکند آیا گروه میتواند به مرورگر پایگاهداده برای کاوش آن منبع داده دسترسی داشته باشد یا خیر.
برای فعالکردن Create queries برای یک گروه، ابتدا آن گروه باید بتواند دادههای منبع را ببیند (یعنی سطح View data روی "Can view" باشد).
سطوح Create queries شامل موارد زیر است:
Query builder و ویرایشگر native
اعضای گروه میتوانند از query builder متابیس یا ویرایشگر native/SQL آن استفاده کنند.
اگر یک گروه برای هر جدولی در پایگاهداده سطح دسترسی View data را روی "Blocked" یا "Row and column security" داشته باشد، اجرای کوئریهای native برای تمام جدولهای آن پایگاهداده غیرفعال میشود. دلیلش این است که متابیس نمیتواند SQL را parse کند، پس نمیتواند مطمئن شود که آیا کوئری روی جدولهای دارای محدودیت اجرا میشود یا نه.
فقط Query builder
اعضای گروه میتوانند با استفاده از query builder متابیس سؤالات جدید بسازند و روی سؤالات موجود drill-through انجام دهند، اما دسترسی به ویرایشگر native/SQL نخواهند داشت.
Granular
گزینهٔ Granular این امکان را میدهد که سطح دسترسی Create queries را برای هر اسکیمـا و/یا جدول بهصورت جداگانه تنظیم کنید.
سطح دسترسی Download results
میتوانید مشخص کنید آیا افراد یک گروه میتوانند نتایج را از یک منبع داده دانلود کنند یا خیر (و اگر بله، تا چه تعداد ردیف). گزینهها عبارتاند از:
- No (امکان دانلود نتایج را ندارند)
- Granular (میخواهید برای جدولها یا اسکیمـاهای تکی سطح دسترسی جداگانه بدهید)
- 10 thousand rows
- 1 million rows
سطح دسترسی Manage table metadata
میتوانید مشخص کنید آیا یک گروه میتواند متادیتای جدول را ویرایش کند یا خیر. گزینهها:
- Yes (یعنی میتوانند متادیتای آن منبع داده را ویرایش کنند)
- No
- Granular (برای تنظیم سطح دسترسی مشخص بهازای هر جدول)
سطح دسترسی Manage database
سطح دسترسی Manage database اجازهٔ دسترسی به صفحهٔ تنظیمات یک پایگاهدادهٔ مشخص را میدهد (یعنی صفحهٔ Admin settings > Databases > پایگاهدادهٔ شما).
در صفحهٔ تنظیمات پایگاهداده میتوانید:
- هر یک از گزینههای اتصال منبع داده را ویرایش کنید.
- اسکیمـاها را همگامسازی کنید.
- مقادیر فیلدها را اسکن کنید.
توجه داشته باشید که فقط ادمینها میتوانند اتصالهای پایگاهداده را در متابیس شما حذف کنند، بنابراین افرادی که فقط سطح دسترسی Manage database دارند دکمهٔ Remove database را نخواهند دید.
بازپسگیری دسترسی، حتی وقتی گروه All Users دسترسی بیشتری دارد
اگر پنجرهٔ هشدار (modal) خاصی را دیدید، متابیس به شما میگوید افرادی که در گروه All Users هستند (یعنی همهٔ کاربران متابیس شما) سطح دسترسی بالاتری نسبت به گروه فعلی شما روی آن پایگاهداده، اسکیمـا یا جدول دارند. برای اینکه گروه فعلی را روی سطح دسترسی دلخواه خود محدود کنید، باید سطح دسترسی گروه All Users را روی آن منبع داده به سطحی کمتر از گروه فعلی کاهش دهید.
سطح دسترسی Upload
برای اطلاعات بیشتر، به Upload permissions مراجعه کنید.