Χρήση ασφάλειας σε επίπεδο γραμμών

Ολοκληρώθηκε

Οι προγραμματιστές μοντέλων δεδομένων ρυθμίζουν το RLS δημιουργώντας έναν ή περισσότερους ρόλους. Ένας ρόλος έχει ένα μοναδικό όνομα στο μοντέλο και συνήθως περιλαμβάνει έναν ή περισσότερους κανόνες. Οι κανόνες επιβάλλουν φίλτρα σε πίνακες μοντέλων χρησιμοποιώντας παραστάσεις φίλτρου παραστάσεων ανάλυσης δεδομένων (DAX).

Σημείωση

Από προεπιλογή, ένα μοντέλο δεδομένων δεν έχει ρόλους. Ένα μοντέλο δεδομένων χωρίς ρόλους σημαίνει ότι οι χρήστες (που έχουν δικαίωμα υποβολής ερωτήματος στο μοντέλο δεδομένων) έχουν πρόσβαση σε όλα τα δεδομένα μοντέλου.

Συμβουλή

Μπορείτε να ορίσετε έναν ρόλο που δεν περιλαμβάνει κανόνες. Σε αυτήν την περίπτωση, ο ρόλος παρέχει πρόσβαση σε όλες τις γραμμές όλων των πινάκων μοντέλων. Αυτή η ρύθμιση ρόλου θα είναι κατάλληλη για έναν διαχειριστή ο οποίος επιτρέπεται να προβάλει όλα τα δεδομένα.

Για τα μοντέλα που έχουν αναπτυχθεί στο Microsoft Power BI Desktop, μπορείτε να δημιουργήσετε, να επικυρώσετε και να διαχειριστείτε ρόλους σε Power BI Desktop. Για τα μοντέλα Microsoft Υπηρεσίες Ανάλυσης του Azure ή Υπηρεσίες ανάλυσης του SQL Server, μπορείτε να δημιουργήσετε, να επικυρώσετε και να διαχειριστείτε ρόλους χρησιμοποιώντας τη SQL Server Data Tools (SSDT).

Επιπλέον, μπορείτε να δημιουργήσετε και να διαχειριστείτε ρόλους χρησιμοποιώντας SQL Server Management Studio ή χρησιμοποιώντας ένα εξωτερικό εργαλείο, όπως Πρόγραμμα επεξεργασίας σε μορφή πίνακα.

Εφαρμογή οντοτήτων σχεδίασης αστεροειδούς σχήματος

Το πρώτο βήμα για την επίτευξη μιας αποτελεσματικής λύσης RLS είναι η ανάπτυξη ενός καλά σχεδιασμένου μοντέλου. Συνιστούμε να εφαρμόσετε κύριες σχεδιάσεις αστεροειδούς σχήματος για να δημιουργήσετε ένα μοντέλο που αποτελείται από πίνακες διαστάσεων και δεδομένων. Συνήθως, το Power BI επιβάλλει κανόνες για το φιλτράρισμα πινάκων διαστάσεων και οι σχέσεις μοντέλων θα μεταδίδουν αποτελεσματικά αυτά τα φίλτρα σε πίνακες δεδομένων.

Η παρακάτω εικόνα είναι το διάγραμμα μοντέλου δεδομένων ανάλυση πωλήσεων Tailspin Toys. Εμφανίζει μια σχεδίαση αστεροειδούς σχήματος που περιλαμβάνει έναν μοναδικό πίνακα δεδομένων με την ονομασία Πωλήσεις. Οι άλλοι τέσσερις πίνακες είναι πίνακες διαστάσεων που υποστηρίζουν την ανάλυση των μετρήσεων πωλήσεων κατά ημερομηνία, πολιτεία, περιοχή και προϊόν. Οι σχέσεις μοντέλων συνδέουν όλους τους πίνακες. Αυτές οι σχέσεις μεταδίδουν φίλτρα (άμεσα ή έμμεσα) στον πίνακα Sales .

Στιγμιότυπο οθόνης ενός διαγράμματος Power BI Desktop μοντέλου που περιλαμβάνει τους πίνακες και τις σχέσεις.

Αυτή η σχεδίαση μοντέλου υποστηρίζει παραδείγματα που παρουσιάζονται σε αυτήν την εκπαιδευτική ενότητα.

Ορισμός κανόνων

Οι παραστάσεις κανόνα αξιολογούνται σε περιβάλλον γραμμής. Το περιβάλλον γραμμής σημαίνει ότι η παράσταση αξιολογείται για κάθε γραμμή χρησιμοποιώντας τις τιμές στήλης αυτής της γραμμής. Όταν η παράσταση επιστρέψει την τιμή TRUE, ο χρήστης μπορεί να "δει" τη γραμμή.

Συμβουλή

Για να μάθετε περισσότερα σχετικά με το περιβάλλον γραμμής, ανατρέξτε στην εκπαιδευτική ενότητα Προσθήκη υπολογιζόμενων πινάκων και στηλών σε Power BI Desktop μοντέλων. Αυτή η εκπαιδευτική ενότητα περιγράφει τη διαδικασία προσθήκης υπολογισμών μοντέλου, όμως περιλαμβάνει επίσης μια μονάδα που παρουσιάζει και περιγράφει το περιβάλλον γραμμής.

Μπορείτε να ορίσετε κανόνες που είναι είτε στατικοί είτε δυναμικοί.

Στατικοί κανόνες

Οι στατικοί κανόνες χρησιμοποιούν παραστάσεις DAX που αναφέρονται σε σταθερές.

Εξετάστε τον παρακάτω κανόνα που εφαρμόζεται στον πίνακα Region που περιορίζει την πρόσβαση σε δεδομένα σε πωλήσεις στη New England:

'Region'[Region] = "New England"

Τα παρακάτω βήματα εξηγούν τη διαδικασία του Power BI για την επιβολή του κανόνα.

  1. Φιλτράρετε τον πίνακα Region , με αποτέλεσμα μία ορατή γραμμή (για New England).

  2. Χρησιμοποιήστε τη σχέση μοντέλου για να μεταδώσετε το φίλτρο πίνακα Region στον πίνακα State , με αποτέλεσμα έξι ορατές γραμμές (η περιοχή Νέα Αγγλία περιλαμβάνει έξι πολιτείες).

  3. Χρησιμοποιήστε τη σχέση μοντέλου για να μεταδώσετε το φίλτρο πίνακα Πολιτεία στον πίνακα Πωλήσεις , με αποτέλεσμα χιλιάδες ορατές γραμμές (τα δεδομένα πωλήσεων για τις πολιτείες που ανήκουν στην περιοχή Νέα Αγγλία).

Ο απλούστερος στατικός κανόνας που μπορείτε να δημιουργήσετε περιορίζει την πρόσβαση σε όλες τις γραμμές πίνακα. Εξετάστε τον παρακάτω κανόνα που εφαρμόζεται στον πίνακα Sales Details (δεν απεικονίζεται στο διάγραμμα μοντέλου):

FALSE()

Αυτός ο κανόνας εξασφαλίζει ότι οι χρήστες δεν έχουν πρόσβαση σε δεδομένα πίνακα. Ο κανόνας μπορεί να είναι χρήσιμος όταν οι πωλητές επιτρέπεται να προβάλλουν συγκεντρωτικά αποτελέσματα πωλήσεων (από τον πίνακα Πωλήσεις ), αλλά όχι λεπτομέρειες σε επίπεδο παραγγελίας.

Ο ορισμός στατικών κανόνων είναι απλός και αποτελεσματικός. Εξετάστε τη χρήση στατικών κανόνων όταν πρέπει να δημιουργήσετε μόνο μερικές από αυτές, όπως μπορεί να συμβαίνει στην περίπτωση του Tailspin Toys, το οποίο διαθέτει μόνο έξι περιοχές. Ωστόσο, να γνωρίζετε ορισμένα μειονεκτήματα: η ρύθμιση στατικών κανόνων μπορεί να απαιτεί σημαντική προσπάθεια για τη δημιουργία και ρύθμιση. Οι στατικοί κανόνες απαιτούν επίσης την ενημέρωση και αναδημοσίευση του συνόλου δεδομένων κατά την εισαγωγή νέων περιοχών.

Εάν υπάρχουν διάφοροι κανόνες για τη ρύθμιση και αναμένετε ότι θα προστεθούν νέοι κανόνες στο μέλλον, εξετάστε τη χρήση δυναμικών κανόνων.

Δυναμικοί κανόνες

Οι δυναμικοί κανόνες χρησιμοποιούν συγκεκριμένες συναρτήσεις DAX που επιστρέφουν περιβαλλοντικές τιμές (σε αντίθεση με τις σταθερές). Οι περιβαλλοντικές τιμές επιστρέφονται από τις ακόλουθες συγκεκριμένες συναρτήσεις DAX:

  • USERNAME ή USERPRINCIPALNAME: Όταν χρησιμοποιείτε το σενάριο Για τον οργανισμό σας , αυτές οι συναρτήσεις επιστρέφουν μια τιμή κειμένου που περιγράφει τον χρήστη με έλεγχο ταυτότητας. Όταν χρησιμοποιείτε το σενάριο Για τους πελάτες σας , επιστρέφουν μια τιμή κειμένου που διαβιβάζει η εφαρμογή σας.

  • CUSTOMDATA: Όταν χρησιμοποιείτε το σενάριο Για τον οργανισμό σας, αυτή η συνάρτηση επιστρέφει την ιδιότητα CustomData που μεταβιβάζεται στο συμβολοσειρά σύνδεσης. Όταν χρησιμοποιείτε το σενάριο Για τους πελάτες σας , επιστρέφει μια τιμή κειμένου που διαβιβάζει η εφαρμογή σας.

Σημείωση

Η USERNAME συνάρτηση θα επιστρέψει τον χρήστη με τη μορφή του DOMAIN\username πότε χρησιμοποιείται σε Power BI Desktop. Ωστόσο, όταν χρησιμοποιείται στον Υπηρεσία Power BI, θα επιστρέψει τη μορφή του κύριου ονόματος χρήστη (UPN), όπως username@tailspintoys.com. Εναλλακτικά, μπορείτε να χρησιμοποιήσετε τη USERPRINCIPALNAME συνάρτηση, η οποία επιστρέφει πάντα τον χρήστη σε μορφή UPN.

Εξετάστε μια αναθεωρημένη σχεδίαση μοντέλου που περιλαμβάνει τώρα τον (κρυφό) πίνακα AppUser . Κάθε γραμμή πίνακα AppUser περιγράφει ένα όνομα χρήστη και μια περιοχή. Μια σχέση μοντέλου στον πίνακα Περιοχή μεταδίδει φίλτρα από τον πίνακα AppUser .

Στιγμιότυπο οθόνης ενός αναθεωρημένου διαγράμματος μοντέλου που περιλαμβάνει τώρα τον πίνακα AppUser. Αυτός ο πίνακας έχει δύο στήλες: Region και UserName.

Ο ακόλουθος κανόνας που εφαρμόζεται στον πίνακα AppUser περιορίζει την πρόσβαση δεδομένων στις περιοχές του χρήστη με έλεγχο ταυτότητας:

'AppUser'[UserName] = USERPRINCIPALNAME()

Ο ορισμός δυναμικών κανόνων είναι απλός και αποτελεσματικός όταν ένας πίνακας μοντέλου αποθηκεύει τιμές ονόματος χρήστη. Οι δυναμικοί κανόνες σάς επιτρέπουν να επιβάλετε μια σχεδίαση RLS βάσει δεδομένων . Για παράδειγμα, όταν οι πωλητές προστίθενται ή καταργούνται από τον πίνακα AppUser (ή ανατίθενται σε διαφορετικές περιοχές), αυτή η προσέγγιση σχεδίασης λειτουργεί.

Σημαντικό

Όταν χρησιμοποιείτε το σενάριο Για τους πελάτες σας , οι USERNAME συναρτήσεις και USERPRINCIPALNAME δεν χρειάζεται να επιστρέψουν ένα πραγματικό όνομα χρήστη. Αντί για αυτό, η εφαρμογή σας μπορεί να διαβιβάσει οποιαδήποτε τιμή κειμένου για το φιλτράρισμα του μοντέλου.

Επικύρωση ρόλων

Όταν δημιουργείτε ρόλους, βεβαιωθείτε ότι τους δοκιμάζετε για να διασφαλίσετε ότι εφαρμόζουν τα σωστά φίλτρα. Για τα μοντέλα δεδομένων που έχουν δημιουργηθεί σε Power BI Desktop, η συνάρτηση Προβολή ως θα σας επιτρέψει να προβάλετε την αναφορά όταν επιβάλλονται διαφορετικοί ρόλοι και μεταβιβάζονται διαφορετικές τιμές ονόματος χρήστη.

Στιγμιότυπο οθόνης της κορδέλας

Ρύθμιση αντιστοιχίσεων ρόλων

Η αντιστοίχιση ρόλων γίνεται διαφορετικά, ανάλογα με το σενάριο ενσωμάτωσης.

Όταν χρησιμοποιείτε το σενάριο Για τον οργανισμό σας , πρέπει να ρυθμίσετε αντιστοιχίσεις ρόλων πριν οι χρήστες αποκτήσουν πρόσβαση σε περιεχόμενο Power BI. Η αντιστοίχιση ρόλων περιλαμβάνει την ανάθεση αντικειμένων ασφαλείας Microsoft Azure Active Directory σε ρόλους. Τα αντικείμενα ασφαλείας μπορεί να είναι λογαριασμοί χρηστών ή ομάδες ασφαλείας.

Συμβουλή

Όταν είναι δυνατό, συνιστάται η αντιστοίχιση ρόλων σε ομάδες ασφαλείας. Με αυτόν τον τρόπο, θα υπάρχουν λιγότερες αντιστοιχίσεις και, στη συνέχεια, μπορείτε να αναθέσετε τη διαχείριση μελών ομάδας στους διαχειριστές του δικτύου.

Για Power BI Desktop ανεπτυγμένα μοντέλα, η αντιστοίχιση ρόλων πραγματοποιείται συνήθως στο Υπηρεσία Power BI. Για Υπηρεσίες Ανάλυσης του Azure ή Υπηρεσίες ανάλυσης του SQL Server μοντέλα, η αντιστοίχιση ρόλων πραγματοποιείται συνήθως σε SQL Server Management Studio (SSMS).

Όταν χρησιμοποιείτε το σενάριο Για τους πελάτες σας , η εφαρμογή εκτελεί αντιστοίχιση ρόλων κατά τον χρόνο εκτέλεσης. Η λογική της εφαρμογής σας ορίζει μία ή περισσότερες αποτελεσματικές ταυτότητες για την επιβολή RLS. Η ρύθμιση αποτελεσματικών ταυτοτήτων περιγράφεται αργότερα σε αυτήν την εκπαιδευτική ενότητα.

Για περισσότερες πληροφορίες σχετικά με τη ρύθμιση του RLS, ανατρέξτε στα παρακάτω άρθρα: