دسترسیهای سطح جدول
زمانی که شما در بکتوری یک پروژه ایجاد میکنید، در ابتدا تمام تنظیمات، از جمله تنظیمات سرویس دیتابیس، به گونهای هستند که شما به عنوان یک توسعه دهنده آزادی کامل داشته باشید. برای مثال یک کاربر شما (شخصی که access-token داشتهباشد) میتواند با داشتن کلید و نام جدول شما در جداول شیء ایجاد کند یا اشیاء را بخواند و تغییر دهد (برای اطلاعات بیشتر در زمینه امنیت به فروم مراجعه کنید.)
این امکانات در ابتدا برای توسعه برنامه، کار توسعه دهنده را راحت میکند؛ اما در ادامه و زمان عرضه برنامه مطلوب نیست که این دسترسیها به کاربران برنامه داده شود. لذا لازم است که برای جداول جهت انجام کارهای مختلف مجوزهایی تعیین کنید. برای مثال میخواهید تمام کاربران امکان خواندن یک جدول تنظیمات را داشته باشند اما فقط یک یا چند نقش خاص یا کاربران منتخب شما توانایی تغییر در جدول را داشته باشند (درباره نقش ها میتوانید قسمت اعتبارسنجی در پایگاه داده را مطالعه کنید.) برای این کار ما تنظیماتی را درنظر گرفتهایم تا شما بتوانید این دسترسیها را برای هر جدول تعیین کنید.
تنظیمات در پنل
ابتدا به قسمت دیتابیس در پنل پروژه خود بروید، در این قسمت لیست تمام جداول پروژه خود را میبینید (دقت کنید که به طور پیشفرض ایجاد جدول تنها از طریق پنل ممکن است.) سپس اگر اشارهگر موس خود را روی هریک از جداول ببرید، دو دکمه ظاهر میشود که یکی از آنها به شکل کلید میباشد، مانند شکل زیر.
با کلیک کردن روی این دکمه لیست تمام دسترسیهایی که میتوانید کنترل کنید ظاهر میشود، این دسترسیها عبارتاند از :
- مجوزهای خواندن
- Get: با مجوز Get، کاربران میتوانند در صورتی که objectId موردنظر خود را بدانند، اشیاء خود را بازیابی کنند.
- Find: هر کس که دارای مجوز Find است، میتواند تمام اشیاء را در جدول جستجو کند، حتی مواردی را که objectId آنها را نمی داند. هر جدول با قابلیت مجوز Find عمومی می تواند به طور کامل قابل خواندن باشد، مگر آنکه ACL را بر روی هر شی قرار دهید.
- مجوزهای نوشتن
- Update: هر کسی با اجازه update می تواند فیلدهای هر شیء در جدول که دارای ACL نیست را تغییر دهد.
- Create: مانند مجوز Update، هر کسی با اجازه Create می تواند اشیاء جدیدی از یک کلاس را ایجاد کند.
- Delete: با استفاده از این مجوز، افراد می توانند هر شی در جدول که ACL ندارد را حذف کنند. البته که برای حذف نیازمند objectId برای اشیای موردنظر میباشد.
- مجوزهای افزودن فیلد (ستون)
- جداول بکتوری دارای شِماهایی هستند که هنگام ایجاد اشیاء تعیین می شوند. همچنین، در هنگامی که شما در حال توسعهی برنامه خود هستید،بدون نیاز به تغییر در backend میتوانید یک فیلد جدید برای شی خود اضافه کنید. اما هنگامی که برنامه خود را منتشر می کنید، موارد بسیار نادری پیش خواهد آمد که شما نیاز به اضافه کردن فیلدهای جدید به جداول خود به طور خودکار هستید. شما باید تقریبا همیشه این مجوز را برای تمام جداول خود خاموش کنید، به خصوص در زمانهایی که برنامه خود را به صورت عمومی منتشر کردهاید.
به صورت پیش فرض تمام این دسترسیها خاموش هستند، این یعنی تمام کاربران برنامه شما میتوانند تمام این کارها را انجام دهند. با فعال کردن هرکدام از دسترسیها، مقدار پیش فرش “فقط دسترسی admin” خواهد بود که به معنای این است که تنها با کلید master پروژه شما میشود این دسترسی را داشت (رایانش از کلید master استفاده میکند پس در واقع میتوان با رایانش تمام دسترسیها را داشت.)
همچنین میتوانید دسترسی را به کاربران برگزیده خود نیز بدهید، که میتوانید آنها را از لیست انتخاب کنید.