Τι είναι το row-level security;
Το Row-Level Security (RLS) είναι δυνατότητα βάσης δεδομένων που αποφασίζει, γραμμή προς γραμμή, ποιες εγγραφές επιτρέπεται να διαβάζει ή να αλλάζει κάθε χρήστης, ώστε ένας πελάτης να βλέπει μόνο τις δικές του παραγγελίες, ακόμα κι αν η εφαρμογή ζητήσει περισσότερα.
Χωρίς αυτό, ο κανόνας «οι χρήστες βλέπουν μόνο τα δικά τους δεδομένα» ζει στον κώδικα της εφαρμογής. Αν μια οθόνη ή ένα API ξεχάσει να ελέγξει, ιδιωτικά δεδομένα μπορεί να διαρρεύσουν.
Με το row-level security, ο κανόνας ζει μέσα στη βάση δεδομένων. Γράφετε μια πολιτική όπως «μια γραμμή στον πίνακα παραγγελιών είναι ορατή μόνο όταν το customer_id της ταιριάζει με τον συνδεδεμένο χρήστη», και η βάση την εφαρμόζει σε κάθε ερώτημα.
Το Postgres υποστηρίζει row-level security, και μερικές υπηρεσίες backend βασίζονται πολύ σε αυτό, επειδή οι εφαρμογές τους μιλούν απευθείας με τη βάση από τον browser. Σε τέτοιες διατάξεις, ένας πίνακας χωρίς πολιτική μπορεί να διαβαστεί από οποιονδήποτε.
Το RLS είναι ένα επίπεδο προστασίας, όχι το μοναδικό. Οι εφαρμογές εξακολουθούν να χρειάζονται σωστή σύνδεση, ελέγχους στον server και προσεκτικό χειρισμό της πρόσβασης διαχειριστή.
Παραδείγματα
- Πελάτες σε client portal που βλέπουν μόνο τα δικά τους έγγραφα
- Κάθε ομάδα σε ένα εργαλείο βλέπει μόνο τα δικά της projects
Ερωτήσεις
Χρειάζομαι row-level security;
Αν η εφαρμογή σας αποθηκεύει ιδιωτικά δεδομένα για πολλούς χρήστες και κάποιο μέρος της ερωτά τη βάση απευθείας από τον browser, ναι. Αν όλη η πρόσβαση περνά από backend που ελέγχει τα δικαιώματα, το RLS είναι επιπλέον δίχτυ ασφαλείας.
Είναι το row-level security το ίδιο με τους ρόλους;
Όχι. Οι ρόλοι περιγράφουν τι είδους χρήστης είναι κάποιος, όπως διαχειριστής ή μέλος. Το row-level security χρησιμοποιεί στοιχεία όπως το αναγνωριστικό ή ο ρόλος του χρήστη για να αποφασίσει ποιες συγκεκριμένες γραμμές μπορεί να φτάσει.
Δείτε επίσης
Mythex · Pricing · Χτίστε οτιδήποτε με AI · Πρότυπα ιστοσελίδων και εφαρμογών · Το Mythex σε σύγκριση · Γλωσσάρι δημιουργίας εφαρμογών με AI · Δωρεάν εργαλεία δημιουργίας εφαρμογών με AI · English