Έλεγχος πρόσβασης δεδομένων με προβολές σε SQL

click fraud protection

Βάση δεδομένων Οι προβολές μειώνουν την πολυπλοκότητα της εμπειρίας του τελικού χρήστη και περιορίζουν την πρόσβαση των χρηστών στα δεδομένα που περιέχονται στους πίνακες βάσεων δεδομένων. Ουσιαστικά, μια προβολή χρησιμοποιεί τα αποτελέσματα του a ερώτημα βάσης δεδομένων για δυναμική συμπλήρωση των περιεχομένων ενός πίνακα εικονικής βάσης δεδομένων.

Γιατί να χρησιμοποιήσετε τις προβολές;

Υπάρχουν δύο κύριοι λόγοι για να παρέχετε στους χρήστες πρόσβαση σε δεδομένα μέσω προβολών αντί να τους παρέχετε άμεση πρόσβαση σε πίνακες βάσης δεδομένων:

  • Οι προβολές παρέχουν απλή, λεπτομερή ασφάλεια. Χρησιμοποιήστε μια προβολή για να περιορίσετε τα δεδομένα που επιτρέπεται να βλέπει ένας χρήστης σε έναν πίνακα. Για παράδειγμα, εάν έχετε έναν πίνακα υπαλλήλων και θέλετε να παρέχετε σε ορισμένους χρήστες πρόσβαση στα αρχεία των υπαλλήλων πλήρους απασχόλησης, μπορείτε να δημιουργήσετε μια προβολή που περιέχει μόνο αυτές τις εγγραφές. Αυτό είναι πολύ πιο εύκολο από την εναλλακτική λύση (δημιουργία και διατήρηση σκιώδους πίνακα) και διασφαλίζει την ακεραιότητα των δεδομένων.
  • instagram viewer
  • Οι προβολές απλοποιούν την εμπειρία χρήστη. Οι προβολές αποκρύπτουν πολύπλοκες λεπτομέρειες των πινάκων βάσης δεδομένων από τελικούς χρήστες που δεν χρειάζεται να τους δουν. Εάν ένας χρήστης απορρίψει τα περιεχόμενα μιας προβολής, δεν θα δει τις στήλες πίνακα που δεν έχουν επιλεγεί από την προβολή και ενδέχεται να μην καταλαβαίνουν. Αυτό τους προστατεύει από τη σύγχυση που προκαλείται από στήλες με κακή ονομασία, μοναδικά αναγνωριστικά και πλήκτρα πίνακα.

Δημιουργία προβολής

Η δημιουργία μιας προβολής είναι αρκετά απλή: Απλώς δημιουργήστε ένα ερώτημα που περιέχει τους περιορισμούς που θέλετε να εφαρμόσετε και τοποθετήστε το μέσα στην εντολή CREATE VIEW. Ακολουθεί η γενική σύνταξη:

ΔΗΜΙΟΥΡΓΙΑ ΠΡΟΒΟΛΗΣ Όνομα προβολής ΩΣ

Για παράδειγμα, για να δημιουργήσετε την προβολή υπαλλήλου πλήρους απασχόλησης, εκδώστε την ακόλουθη εντολή:

ΔΗΜΙΟΥΡΓΙΑ ΠΡΟΒΟΛΗΣ πλήρους απασχόλησης ΩΣ
ΕΠΙΛΕΞΤΕ το πρώτο όνομα, το τελευταίο όνομα, το υπάλληλο
ΑΠΟ υπαλλήλους
Κατάσταση = "FT";

Τροποποίηση προβολής

Η αλλαγή του περιεχομένου μιας προβολής χρησιμοποιεί την ίδια ακριβώς σύνταξη με τη δημιουργία μιας προβολής, αλλά χρησιμοποιήστε την εντολή ALTER VIEW αντί για την εντολή CREATE VIEW. Για παράδειγμα, για να προσθέσετε έναν περιορισμό στην προβολή πλήρους απασχόλησης που προσθέτει τον αριθμό τηλεφώνου του υπαλλήλου στα αποτελέσματα, εκδώστε την ακόλουθη εντολή:

ALTER VIEW πλήρους απασχόλησης ΩΣ
ΕΠΙΛΕΞΤΕ όνομα_συνόλου, επώνυμο, υπάλληλος_id, τηλέφωνο
ΑΠΟ υπαλλήλους
Κατάσταση = "FT";

Διαγραφή προβολής

Είναι απλό να αφαιρέσετε μια προβολή από μια βάση δεδομένων χρησιμοποιώντας την εντολή DROP VIEW. Για παράδειγμα, για να διαγράψετε την προβολή υπαλλήλου πλήρους απασχόλησης, χρησιμοποιήστε την ακόλουθη εντολή:

DROP VIEW πλήρους απασχόλησης 

Προβολές εναντίον Υλοποιημένες προβολές

Η προβολή είναι ένας εικονικός πίνακας. ΕΝΑ υλοποιημένη άποψη είναι η ίδια άποψη γραμμένη στο δίσκο και η πρόσβαση ήταν σαν να ήταν ένας πίνακας από μόνος του.

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

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

instagram story viewer