تقييد الوصول إلى سمات البعد في نموذج جدول SSAS

هناك أوقات تحتاج فيها إلى تقييد وصول المستخدمين إلى بعض البيانات في المكعب. يبدو أنه لا يوجد شيء معقد: تثبيت عوامل تصفية الخطوط في الأدوار وأنت انتهيت ، ولكن هناك مشكلة واحدة - يقوم المرشح بتثبيط البيانات الموجودة في الجدول واتضح أنه لا يمكنك رؤية السرعة إلا عن طريق الخطوط المتوفرة ، ونحن بحاجة إلى السرعة القصوى ، ولكن يجب أن تتوفر التفاصيل فقط بالنسبة لبعضهم.

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

لمنع المستخدم من عرض قيمة التداول من حيث العملاء ، يمكنك التغلب على ذلك من خلال الصيغ في التدابير وعرض قيمة فارغة إذا كان المستخدم يحاول رؤية معدل دوران عميل معين ، ويرد وصف واحد من هذه الخيارات هنا . ومع ذلك ، هذا ليس هو الحال. عندما يقيس بضع عشرات ، ثم اكتب صيغة في كل منها ... وإذا نسيت؟ لكنك لن تنساه بالتأكيد في يوم من الأيام ... وإذا احتاج المستخدم إلى بيانات من بطاقة عميل معين ، فلن يمنعه أي شيء من رؤية ذلك دون اختيار مقياس تصفية. ماذا تفعل؟

نحن بحاجة لتحقيق هذا العرض:



يستند المبدأ بالكامل الذي يسمح لك بالحصول على نتيجة مماثلة على خدعة صغيرة ، وهو يتألف من إضافة صفوف صناعية إلى الجدول (العملاء ، في هذه الحالة) بحيث يتم تكرار السجل الخاص بالكيان نفسه مرة واحدة على الأقل - الأول سيتضمن المعلومات الكاملة ، والثاني في معظم الأعمدة ممتلئة بمقبس نوع N / A ، لكن المعرفات هي نفسها لكلا السجلين. علاوة على ذلك ، باستخدام عامل التصفية في الأدوار وعمود خاص يتم من خلاله إجراء التصفية ، نترك بعض الأسطر المتاحة للمستخدم - إما سطرًا يحتوي على حقول مملوءة تمامًا أو بذرات. ومنذ ذلك الحين نظرًا لأن المكعب يحتوي على ميزة "الانهيار" لتكرار البيانات ولا يمكن للمستخدم الوصول إلى أي سمات أخرى تعطي قيمًا فريدة ، فسوف يتحول جميع العملاء الذين لديهم الكود # N / A إلى جدول واحد في الجدول الناتج. أعتقد أنه في هذه المرحلة أصبح كل شيء واضحًا بالفعل ، لم يعد بإمكانك القراءة. والنتيجة هي في عنوان المقال.

ولكن إذا كان شخص ما يحتاج إلى التفاصيل - لديهم.

لا تسمح النماذج المجدولة التي تصل إلى الإصدار 1400 (SQL 2017 ضمنيًا) بإنشاء العديد من العلاقات ، ولكن في حالة التكرارات ، نحتاج إلى مثل هذه العلاقة ، لذلك سننشئها من خلال جدول وسيط يحتوي على عمود واحد فقط به معرفات عملاء فريدة. الجدول غير قابل للضغط في البداية منذ ذلك الحين يحتوي على قيم فريدة فقط ، لذا يمكنك حسابها ، لأننا في هذه الحالة لن نكتسب أي شيء إذا ملأناها من خلال t-sql (تذكر مبدأ المعالجة وترتيب ضغط الجدول؟). نظرًا لقدرة المحرك على ضغط البيانات المكررة ، سيزداد حجم البيانات في المكعب قليلاً ، وبسبب التصفية خلال الدور ، تحتوي جلسة المستخدم على مجموعة مخفضة من السجلات ، على سبيل المثال سيبقى العدد الأخير من السجلات بعد تصفية المجموعة كما كان بدون تكرارات. لذلك ، لا تقلق ، حتى إذا كان الجدول كبيرًا في البداية بدرجة كافية ، فإن إضافة التكرارات لن تؤثر على الأداء والحجم بطريقة كبيرة (بالطبع ، الحالات مختلفة ، ولكن في معظمها سيكون كل شيء على هذا النحو).

يوضح الشكل التالي نموذج المكعب ومحتويات الجدول:



على سبيل المثال ، أضف مرشحًا بسيطًا:



هذا كل شيء.

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

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

Source: https://habr.com/ru/post/ar484890/


All Articles