مجوزهای پوشه snippet
این مقاله پوشههای Snippet را پوشش میدهد، که به شما امکان میدهند Snippetها را سازماندهی و مجوزها را روی آنها تنظیم کنید.
مجوزهای پوشه نباید بهعنوان یک ویژگی امنیتی در نظر گرفته شوند، بلکه بهعنوان ویژگیای که به سازماندهی و استانداردسازی snippetها کمک میکند. اگرچه پوشهها متمایز و جدا از کلکسیونها هستند، هر دو یک عملکرد سازمانی دارند: کلکسیونها داشبوردها و سؤالها را جمع و مجوز میدهند؛ پوشهها snippetها را جمع و مجوز میدهند. برای اطلاعات بیشتر، به بحث دربارهٔ مجوزها در زیر مراجعه کنید.
پوشهها
پوشهها شبیه یک سیستم فایل کار میکنند. میتوانید snippetها را به پوشهها اضافه کنید، و پوشهها را درون پوشههای دیگر قرار دهید. میتوانید به اندازهای که instance متابیس شما میتواند مدیریت کند یا قوانین فیزیک اجازه میدهد (هر کدام زودتر باشد) پوشهها را تو در تو کنید.
پوشه Top پوشه پیشفرض نوار کناری snippet است. این پوشه ریشه است که شامل همه پوشهها و snippetها میشود.
ایجاد یک پوشه Snippet جدید
میتوانید یک پوشه Snippet از منوی Snippets در ویرایشگر SQL ایجاد کنید.

- روی آیکون منوی Snippets کلیک کنید (آیکون snippet شبیه یک بلوک متن یا کد با سه خط افقی ناهموار است).
- روی آیکون + کلیک کنید و New folder را انتخاب کنید.
- به پوشه خود یک نام بدهید، و بهصورت اختیاری Add a description و/یا پوشه را در یک پوشه موجود قرار دهید (گزینه Folder this should be in).

ایجاد یک Snippet جدید
در برخی پلنها، هنگام ایجاد یک Snippet، همچنین یک گزینه اضافی برای اضافه کردن آن snippet به یک پوشه موجود (گزینه Folder this should be in) میبینید.

موقعیت پیشفرض پوشه Top است، که پوشه ریشه برای همه snippetها و پوشهها است. میتوانید یک snippet را در هر زمان به یک پوشه اضافه کنید (یا یک snippet را به پوشه دیگری منتقل کنید، به شرطی که مجوز Edit به هر دو پوشه داشته باشید).
توجه داشته باشید که نامهای snippet باید منحصر به فرد باشند؛ پوشهها این الزام را تحت تأثیر قرار نمیدهند.
مجوزها
ادمینها (و فقط ادمینها) میتوانند قابلیت مشاهده و ویرایش snippetها را با قرار دادن snippetها در پوشهها، سپس اعطای یکی از سه سطح مجوز به گروهها با توجه به آن پوشهها تنظیم کنند. اگر با مجوزهای کلکسیون آشنا هستید، عملکرد مشابه است. برای اطلاعات بیشتر دربارهٔ نحوهٔ کار مجوزهای کلکسیون و پوشه با هم، به نحوهٔ کار مجوزهای پوشه در زیر مراجعه کنید.
تغییر مجوزها روی یک پوشه
ادمینها میتوانند مجوزها را روی یک پوشه با کلیک روی سه نقطه (...) کنار یک پوشه، و انتخاب Change permissions تنظیم کنند.
همچنین میتوانید پوشه در حال انتخاب را با hover کردن روی بالای نوار کناری Snippets، کلیک روی سه نقطه (...) در سمت چپ +، و انتخاب Change permissions تغییر دهید. وقتی در پوشه Top هستید، انتخاب ... در بالای نوار کناری به ادمینها گزینه تنظیم مجوزها برای همه snippetها، پوشهها، و زیرپوشهها را میدهد.
هنگام تغییر مجوزها روی یک پوشه که زیرپوشه دارد، یک گزینه برای گسترش آن مجوزها به زیرپوشههای آن پوشه با toggle کردن تنظیم Also change sub-folders دارید.
گزینهها برای مجوزهای پوشه

سه گزینه برای تغییر مجوزهای پوشه snippet وجود دارد:
- دسترسی Edit (آیکون تیک سبز). تنظیم پیشفرض. وقتی یک پوشه ایجاد میشود، همه کاربران (که مجوزهای ویرایشگر SQL برای حداقل یک پایگاه داده دارند) میتوانند snippetهای پوشه را مشاهده، ویرایش، و آرشیو یا unarchive کنند.
- دسترسی View (آیکون چشم زرد). کاربران در گروههایی با دسترسی view میتوانند snippetهای پوشه را مشاهده کنند، اما نمیتوانند آنها را ویرایش یا آرشیو/unarchive کنند. آنها میتوانند، البته، کد snippet را کپی کنند و snippetهای جدید ایجاد کنند، بدون تأثیر روی snippetهای موجود.
- Revoke access (آیکون X قرمز). کاربران در گروههایی با نه دسترسی edit و نه view به یک پوشه snippet آن snippetهای پوشه را در نوار کناری نمیبینند، و هیچ snippet در آن پوشه در پیشنهادات typeahead برای آن کاربران ظاهر نمیشود. توجه داشته باشید که اگر افراد دسترسی به یک سؤال با snippet که مجوز آن را ندارند داشته باشند، همچنان قادر خواهند بود نتایج از آن سؤال را دریافت کنند. به بحث در زیر دربارهٔ نحوهٔ کار مجوزهای پوشه مراجعه کنید.
آرشیو کردن مجوزها را تحت تأثیر قرار نمیدهد
آرشیو یا unarchive کردن snippetها مجوزهای snippet را تحت تأثیر قرار نمیدهد. بهعنوان مثال، اگر فقط یک گروه، مثلاً گروه Accounting، مجوزهای edit روی یک پوشه داشته باشد، فقط افراد در گروه Accounting (و ادمینها) قادر خواهند بود snippetهای آن پوشه را آرشیو و unarchive کنند، چون آرشیو و unarchive کردن ویرایش snippet در نظر گرفته میشود.
نحوهٔ کار مجوزهای پوشه
مثل مجوزهای کلکسیون، مجوزهای پوشه افزودنی هستند، به این معنی که دسترسی مجازتر دسترسی کمتر مجاز را override میکند. به تنظیم مجوزها برای بحث دقیقتر مراجعه کنید.
اما مجوزهای پوشه snippet نیاز به تلاش بیشتری برای باز کردن دارند، چون مجوزها برای پوشههای snippet باید در ارتباط با مجوزها برای داده و کلکسیونها کار کنند.
در اینجا قانون پایه است: داده حساستر از کد است، بنابراین مجوزهایی که روی داده اعمال میشوند بر مجوزهایی که روی کد اعمال میشوند اولویت دارند. بیایید با یک مثال کار کنیم تا نشان دهیم این در عمل چگونه کار میکند.
مثال مجوزها
سناریوی زیر را در نظر بگیرید (و اینجا جملهای است که ارزش خواندن آهسته را دارد): یک گروه میتواند مجوز به یک کلکسیون داشته باشد که شامل یک سؤال است که از snippet نگهداری شده در پوشهای استفاده میکند که گروه مجوز به آن ندارد. برای بازنویسی: افراد در آن گروه مجوز اجرای سؤالها در یک کلکسیون را دارند، اما مجوز به پوشهای حاوی snippet استفادهشده در یکی از سؤالهای کلکسیون را ندارند. متابیس چگونه مجوزها را در این مورد حل میکند؟
در سه بخش:
- افراد در آن گروه میتوانند سؤال را اجرا کنند و نتایج را دریافت کنند. آنها مجوز دیدن آن داده (نتایج سؤال) را دارند، بنابراین باید بتوانند آن داده را ببینند. مجوز گروه به کلکسیون بر مجوزها به پوشه (کد snippet) اولویت دارد.
- snippet در نوار کناری Snippet نمایش داده نمیشود. با این حال، فقط به این دلیل که افراد در آن گروه میتوانند سؤال را بدون مشکل اجرا کنند، آنها همچنان مجوز به پوشه snippet را ندارند، بنابراین نمیتوانند آن snippet (یا پوشه snippet) را در نوار کناری Snippet مشاهده یا ویرایش کنند.
- افراد با دسترسی کوئری SQL همچنان میتوانند snippet را اجرا کنند اگر نام آن را بدانند، صرف نظر از اینکه مجوز به پوشه snippet را دارند یا نه. آنها نمیتوانند snippet را مشاهده یا ویرایش کنند، اما میتوانند آن را در یک کوئری شامل کنند اگر نام آن را میدانستند، مثلاً
{% raw %}{{snippet: Example snippet I don't have permissions to but can still use }}{% endraw %}.
به دلیل نحوهٔ کار مجوزهای پوشه snippet، توصیه میکنیم که مجوزهای پوشه snippet را بهعنوان یک ابزار اضافی برای سازماندهی snippet در نظر بگیرید، نه بهعنوان روشی برای جلوگیری از دسترسی به کد SQL که آن snippetها حاوی آن هستند. از مجوزهای پوشه برای مرتب نگه داشتن نوار کناری snippet با در معرض دید قرار دادن تیمها به پوشههای مرتبط با حوزه تحلیلی آنها استفاده کنید، و مجوزهای ویرایش را برای snippetهای کلیدی در سازمان خود محدود کنید تا کد SQL مهم دقیق و ایمن از باگهای معرفیشده توسط ویرایشهای بررسینشده نگه دارید.