إنتقل إلى المحتوى الرئيسي

منح دور صلاحية الوصول إلى السجلات

الهدف​

تحديد ما يستطيع كل دور فعله بـسجلات بيئة ما — كجزء من الحل الذي يعرض التطبيق، كي يبلغ الوصولُ نفسُه Test وProd.

المتطلبات المسبقة​

  • أنت داخل مركز التحكّم الإداري.
  • ثمّة حل مفتوح (راجع إنشاء حل).
  • الجداول التي تريد منح الوصول إليها موجودة في البيئة. فكل جدول يُنشأ ومعه بياناته خلفه، ومن ثمّ فكل جدول تراه جدول يمكنك منح الوصول إليه.

سؤالان لا سؤال واحد​

كل سطر من الدور يجيب عن سؤالين منفصلين، وفهم هذا الفصل هو معظم فهم هذه الشاشة:

  • الصلاحية — ما الذي يستطيعه؟ إنشاء، قراءة، تعديل، حذف على جدول.
  • السياسة — على أي السجلات؟ من السجلات التي أملكها، مرورًا بـوحدتي وما دونها، إلى كل السجلات.

ولهذا كانت كل خليّة في الشبكة قائمة منسدلة لا مربّع اختيار: فمربّع الاختيار لا يجيب إلا عن السؤال الأول.

منح الدور لفريق​

فوق الشبكة قائمة بـفرق البيئة، لكل منها مربّع اختيار. كل من في فريق معلَّم يحمل هذا الدور هنا، إضافةً إلى من أُسنِد إليه الدور مباشرة في صفحة المستخدمين. والطريقان يُحتسبان معًا: من كان في فريق معلَّم ويحمل الدور شخصيًا يحمله مرة واحدة.

هذا هو النصف الثاني من معنى وضع أحدهم في فريق. فعضوية الفريق كانت تقرّر أصلًا أي السجلات يبلغها الإذن — سياسات فرقي — وصارت الآن تقرّر أي الأذونات يحملها كذلك.

هذا قرار مؤسستك نفسها، فلا ينتقل أبدًا داخل حل. الحزمة تجلب دورًا وما يجوز لذلك الدور فعله؛ أما من يحمله فأمر يخصّ أهلك، ولا شأن للناشر به. لذا هذه القائمة واحدة أيًّا كان الحل الذي تقف فيه، ولا يمسّها إلغاء التثبيت.

ويسري في الطلب التالي، مثل كل تغيير آخر في هذه الشاشة — بما في ذلك حين ينضم أحدهم إلى الفريق أو يتركه لاحقًا.

امتيازات المنصة — الأشياء التي ليست عن جدول​

فوق الشبكة قائمة قصيرة من مربّعات الاختيار: استيراد حل وتصدير حل واستيراد بيانات. هذه قدرات لا جدول خلفها، فلا ينطبق عليها السؤال الثاني — لا سجلات لتصفيها سياسة. تُمنح أو لا تُمنح، ولهذا هي مربّعات اختيار لا قوائم منسدلة.

وتُحفظ لكل بيئة، مثل كل شيء آخر في هذه الشاشة: الدور الذي يستطيع استيراد حل إلى Dev لا يستورد به إلى Prod.

وإدارة المستخدمين والأدوار ليست هنا، وهذا مقصود لا سهو. فالمستخدمون والأدوار على مستوى المستأجر — موجودون في أي بيئة كنت — و«يجوز له إدارة المستخدمين، في Dev» ليست جملة ذات معنى. تبقى هذه مع مسؤول المنصة.

وصف «كل الجداول» لا يشمل امتيازًا. معناه كل جدول، والمنصة ليست جدولًا. يُمنح الامتياز بتعليمه.

الخطوات​

  1. افتح الحلول، ثم افتح الحل الذي يعيش فيه تطبيقك.
  2. افتح الأدوار من تنقّل الحل.
  3. إمّا أن تختار جديد لإنشاء دور يملكه هذا الحل، أو إضافة دور موجود لمنح الوصول لدور تملكه مؤسستك بالفعل.
  4. في الشبكة، اضبط كل خليّة على سياسة، أو اتركها على غير ممنوح.
  5. الصف الأول هو كل الجداول. والمنح فيه يشمل كل جدول — بما فيه ما تنشئه لاحقًا، وهو ما لا يشمله منحٌ جدولًا جدولًا.
  6. اختر حفظ.

يسري التغيير في الطلب التالي. ولا انتظار.

لماذا يجري هذا داخل حل، ولماذا لا يسأل عن البيئة أبدًا​

الصلاحية تسمّي جدولًا، والجداول تخصّ بيئةً؛ والصلاحية التي يُراد لها أن تبلغ Test وProd لا بد أن تنتقل في حزمة. وفتحُ حلٍّ قد ثبّت الأمرين معًا — فالحل يخصّ بيئة واحدة — فلم يبقَ للشاشة بيئة تسأل عنها. ولمنح الدور نفسه وصولًا مختلفًا في مكان آخر، صدّر الحل واستورده هناك، أو بدّل البيئة واعمل في حل تلك البيئة.

أي الأدوار تظهر في القائمة​

الدور يكون في الحل لأحد سببين، وكلاهما يظهر في القائمة:

  • الحل يملكه — أُنشئ هنا بـجديد، فيحمل اسمه المنطقي بادئة الناشر (par_sales).
  • الحل يمنحه شيئًا — دور تملكه مؤسستك بالفعل، أُحضر بـإضافة دور موجود.

وإضافة دور موجود لا تكتب شيئًا بذاتها؛ إنما ينضم إلى الحل لحظة تمنحه شيئًا وتحفظ. ومنحُ دور sales الخاص بك شيئًا لا يجعله ملك الناشر أبدًا: فانتماء الدور إلى حزمة تقرّره بادئته، ولذا لا يستطيع إلغاء التثبيت أن يسلبك دورك.

إزالة من الحل تمحو فقط الصلاحيات التي يمنحها هذا الحل. أما الدور الذي يملكه الحل فلا يُزال بهذه الطريقة — فهو يخصّ الحزمة، وإزالته تعني حذف الدور من صفحة الأدوار في مركز التحكّم الإداري.

الطبقة التي تعدّلها​

تُظهر الخانات ما يمنحه هذا الحل. وحيثما منحت طبقةٌ أخرى شيئًا تركه الحل فارغًا، تقول الخانة ذلك — ممنوحة من مكان آخر: … — بدل أن تدمجه. وهذا التمييز مهم لأن الشاشة تكتب ما تعرضه: فلو عرضت الجواب المدموج، لنسخت عمليةُ حفظ واحدة تعديلاتِك المحلية وصلاحياتِ الحلول الأخرى إلى حزمتك.

والحل الافتراضي (Main) استثناء. فهو ليس حزمة، ولذا تعدّل شبكتُه صلاحيات بيئتك هي: لا تنتقل في أي حزمة، وتتقدّم على كل ما يمنحه أي حل. وهناك موضع التعديل المحلي الذي لا تريد عرضه.

نسخ دور​

شائع أن يختلف دوران في خانة أو خانتين — «المبيعات» و«مدير المبيعات»، «الدعم» و«رئيس الدعم» — ومنح الثاني صلاحياته خانةً خانة هو الطريق إلى دور أمان يختلف عن شقيقه في موضع لم يقصده أحد.

  1. افتح الدور الذي تريد البدء منه.
  2. اختر نسخ الدور.
  3. أعطِ الدور الجديد اسمًا معروضًا، وهو الاسم الذي يُقرأ في صفحة الأدوار وفي قائمة المستخدمين، مثل المبيعات الميدانية (للقراءة فقط).
  4. أعطِ الدور الجديد اسمًا منطقيًا (مسبوقًا ببادئة، كأي مكوّن آخر ينشئه هذا الحل).
  5. اختر نسخ، ثم اضبط الخانات التي ينبغي أن تختلف واختر حفظ.

تأخذ النسخة الصلاحيات كما هي على الشاشة، بما في ذلك تعديلات لم تحفظها بعد — فنسخ دور كنت تضبطه للتوّ ينبغي أن ينسخ ما تنظر إليه.

وهناك أمران لا تفعلهما عمدًا:

  • لا تنسخ الدور في البيئات الأخرى. هذه البيئة وحدها. فالدور نفسه يعني أشياء مختلفة في التطوير والإنتاج، لذا فنسخ «ما يُسمح لهذا الدور به» لا يمكن أن يعني إلا ما يُسمح له به هنا.
  • لا تنسخ من يحمل الدور. فأولئك أشخاصك، ونسخ دور ليس سببًا لنسخ عضويته. أسنِد الدور الجديد إلى من ينبغي أن يحمله (راجع «إسناد دور إلى مستخدم»).

بماذا تبدأ بيئة جديدة​

بدور المصمّم وحده، ممنوحًا كل شيء على كل الجداول وامتيازات المنصة الثلاثة. وكل دور آخر يبدأ بـلا شيء — حتى دورٌ يحمله مستخدم بالفعل. وهذا مقصود: فالوصول شيء منحه أحدهم، و«لا شيء» هو الافتراضي الوحيد الذي يكون الخطأ فيه آمنًا.

ومسؤول المؤسسة ليس في الشبكة أصلًا. فهو كامل الوصول بحكم التعريف ويتجاوز هذه الشاشة، حتى لا يستطيع سحبُ الشيء الخطأ أن يحبسك خارج الشاشة نفسها التي تعيده.

حين يجلب الدورَ حلٌّ مثبَّت​

قد يجلب الحل المثبَّت معه أدوار أمان — الدور وما يجوز له فعله — لأن تطبيقًا يُشحن بلا أدواره تطبيق لا يستطيع أحد استعماله. وهذه المنوحات نافذة فور انتهاء التثبيت؛ ولا يحتاج أحد إلى إعادة منحها.

ومع ذلك يمكنك تغييرها من حل Main، وتغييرك هو الغالب:

  • ضيّق خانة أو وسّعها فيكون المطبَّق هو إعدادك، مهما وضع الحل.
  • أعد خانة إلى «غير ممنوح» فتبقى غير ممنوحة — ولا يعود منح الحل في المرة التالية التي تفتح فيها الشاشة.
  • حدّث الحل فتبقى تغييراتك. فالاستيراد يحدّث منوحات الحل نفسه ويترك منوحاتك وشأنها.
  • ألغِ تثبيت الحل فتذهب منوحاته معه. ويبقى كل ما وضعته أنت؛ فالخانة التي غيّرتها تعود إلى قيمتك أنت، والخانة التي منحها الحل وحده تصير «غير ممنوحة».

أما مَن يحمل الدور فليس جزءًا من الحزمة أبدًا. هؤلاء أشخاصك، وإسناد الدور يفعله دائمًا شخص هنا (انظر إسناد دور إلى مستخدم).

السياسات، من الأضيق إلى الأوسع​

كلٌّ منها قابل للاختيار، وكلٌّ منها مطبَّق:

السياسةإلى أين تصل
لا سجلاتلا شيء. والصلاحية الممنوحة بهذه السياسة لا تفعل شيئًا — ولا تفيد إلا في تعطيل شيء دون إزالة الصف.
السجلات التي أملكهاالسجلات التي يملكها هذا المستخدم شخصيًّا.
سجلاتي وسجلات فرقيما سبق، مضافًا إليه سجلات أي فريق ينتمي إليه.
سجلات فرقيالسجلات التي يملكها فريق ينتمي إليه.
وحدتيالسجلات المملوكة داخل وحدته التنظيمية.
وحدتي وما دونهاوحدته وكل وحدة تحتها.
وحدتي وما فوقهاوحدته وكل وحدة ترفع إليها.
فرعي كاملًاأعلى وحدة فوقه، وكل ما تحتها.
كل السجلاتالبيئة كلها.

وكل ما عدا كل السجلات يتوقّف على مالك السجل وعلى موضع الوحدات في التنظيم. ويُحدَّد مالك السجل عند إنشائه ويمكن تسليمه بعد ذلك (انظر تغيير مالك السجل)؛ أما الوحدات والفرق فجداول في البيئة، فتبني تنظيمك هناك وتتبعه السياسات.

وحدة السجل هي وحدة مالكه، تُحدَّد عند إنشائه ومن جديد كلما أُسند إلى شخص آخر. ونقلُ شخص إلى وحدة أخرى لاحقًا لا ينقل ما يملكه من قبل؛ أعد إسناد تلك السجلات إن كان ينبغي أن تتبعه. أما سجلات شخص بلا وحدة فلا تبلغها أي سياسة وحدات.

والسياسة التي لا يستطيع المحرّك تقييمها تُدرج تحت الشبكة ولا يمكن اختيارها — لأن منحًا لا يستطيع المحرّك تقييمه سيُظهر على هذه الشاشة وصولًا لا يملكه المستخدم فعلًا. واليوم كل السياسات المدمجة قابلة للتقييم، فلا يظهر هناك شيء.

ماذا يرى المستخدم عند منحٍ ضيّق​

لا تُعرض للمستخدم أوامرُ لا يبلغها دوره. ففي جدول لا يستطيع الإنشاء فيه لا يوجد زر جديد، وفي جدول لا يستطيع الحذف منه لا يوجد حذف، والجدول الذي يقرؤه ولا يعدّله تُفتح سجلاته للقراءة فقط بلا حفظ. فيُقرأ المنح الأضيق تطبيقًا أبسط لا جدارًا من الرفض — وتُفحَص الصلاحية على الخادم في كل مرة، مهما عرضت الشاشة.

حل المشكلات​

  • «… is not a permission this environment can grant.» — حُذف الجدول بعد كتابة الدور. أعد فتح الشاشة واضبط المنح من جديد.
  • «… is listed twice.» — الدور يحمل الصلاحية تحت سياسة واحدة بالضبط. اضبط الخليّة مرة.
  • ما زال المستخدم لا يرى السجلات بعد منح الدور. — تحقّق من الدور الذي يحمله رمزه فعلًا؛ فمنحُ «Sales» لا يفعل شيئًا لمستخدم تقول مطالبته «sales». وإن كنت منحت الدور لـفريق، فتحقّق من أنه فيه — تحت الفرق.
  • لا توجد قائمة فرق في الشاشة. — البيئة بلا فرق بعد، أو لم يُزرع نموذجها التنظيمي. أنشئ فريقًا تحت الفرق ثم أعد فتح الدور.
  • أزلتُ كل شيء والآن لا أحد يستطيع استعمال التطبيق. — هذا ما تفعله. امنح الدور مجددًا؛ ووصولك أنت كمسؤول لم يتأثر.
  • «لا تملك امتياز … في هذه البيئة.» — أحدهم يحاول استيراد جدول بيانات، أو استيراد حل أو تصديره، ودوره غير معلَّم به. علّمه في امتيازات المنصة فوق الشبكة.
  • «… امتياز منصة، فهو يُمنح أو لا يُمنح.» — أُرسِل امتياز ومعه سياسة. لا شيء في الشاشة يستطيع ذلك؛ إنما يأتي من حزمة حل سمّت له سياسة.
  • الشبكة فارغة. — لم تُختَر بيئة أعلى النافذة، أو ليس في تلك البيئة جداول بعد.
  • دور أضفته اختفى من القائمة. — حفظته بلا أي منح. فالدور يكون في الحل لأن الحل يمنحه شيئًا؛ أضفه من جديد وامنحه شيئًا.
  • منحتُ الدور في Dev ولم يتغيّر شيء في Prod. — هذا متوقع: الصلاحيات لكل بيئة. صدّر الحل واستورده إلى Prod (راجع استيراد حل إلى بيئة)، وهو بالضبط الغرض من وضع الصلاحيات في حل.

سيناريوهات ذات صلة​