Γλώσσα ελέγχου δεδομένων (DCL)

GRANT, REVOKE και DENY Δικαιώματα βάσης δεδομένων

Η Γλώσσα Ελέγχου Δεδομένων (DCL) είναι ένα υποσύνολο της Δομημένης Γλώσσας Ερωτήσεων (SQL) και επιτρέπει στους διαχειριστές βάσεων δεδομένων να διαμορφώνουν την πρόσβαση ασφαλείας σε σχεσιακές βάσεις δεδομένων. Συμπληρώνει τη Γλώσσα προσδιορισμού δεδομένων (DDL), η οποία χρησιμοποιείται για την προσθήκη και τη διαγραφή αντικειμένων βάσης δεδομένων, και τη Γλώσσα χειρισμού δεδομένων (DML) που χρησιμοποιείται για την ανάκτηση, εισαγωγή και τροποποίηση των περιεχομένων μιας βάσης δεδομένων.

Το DCL είναι το απλούστερο υποσύνολο SQL , καθώς αποτελείται από τρεις μόνο εντολές: GRANT, REVOKE και DENY. Συνδυασμένες, αυτές οι τρεις εντολές παρέχουν στους διαχειριστές την ευελιξία να ορίσουν και να καταργήσουν τις άδειες βάσης δεδομένων με εξαιρετικά λεπτομερή τρόπο.

Προσθήκη δικαιωμάτων με την εντολή GRANT

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

GRANT [προνόμιο] ON [αντικείμενο] TO [χρήστη] [ΜΕ ΕΠΙΛΟΓΗ ΕΓΓΡΑΦΗΣ]

Ακολουθεί η περιγραφή για κάθε μία από τις παραμέτρους που μπορείτε να δώσετε με αυτήν την εντολή:

Για παράδειγμα, υποθέστε ότι επιθυμείτε να δώσετε στον χρήστη Joe τη δυνατότητα να ανακτήσει πληροφορίες από τον πίνακα εργαζομένων σε μια βάση δεδομένων που ονομάζεται HR. Μπορείτε να χρησιμοποιήσετε την ακόλουθη εντολή SQL:

ΕΠΙΛΟΓΗ ΕΠΙΧΟΡΗΓΗΣΗΣ ΣΕ HR.employees TO Joe

Ο Τζο θα έχει τώρα τη δυνατότητα να ανακτήσει πληροφορίες από το τραπέζι των εργαζομένων. Ωστόσο, δεν θα είναι σε θέση να παραχωρήσει στους άλλους χρήστες άδεια για ανάκτηση πληροφοριών από αυτόν τον πίνακα επειδή δεν συμπεριλάβατε τη ρήτρα WITH GRANT OPTION στη δήλωση GRANT.

Αναίρεση πρόσβασης βάσης δεδομένων

Η εντολή REVOKE χρησιμοποιείται για την κατάργηση της πρόσβασης βάσης δεδομένων από έναν χρήστη που έχει προηγουμένως παραχωρηθεί τέτοια πρόσβαση. Η σύνταξη αυτής της εντολής ορίζεται ως εξής:

ΑΠΑΓΟΡΕΥΕΤΑΙ [ΕΠΙΛΟΓΗ ΔΗΜΙΟΥΡΓΙΑΣ ΓΙΑ] [άδεια] ON [αντικείμενο] ΑΠΟ [χρήστη] [CASCADE]

Ακολουθεί η περιγραφή των παραμέτρων της εντολής REVOKE:

Για παράδειγμα, η ακόλουθη εντολή ανακαλεί την άδεια που δόθηκε στον Joe στο προηγούμενο παράδειγμα:

ΑΠΑΓΟΡΕΥΕΤΕ ΕΠΙΛΟΓΗ ΣΕ HR.employees FROM Joe

Διαγραφή ρητά της βάσης δεδομένων

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

DENY [άδεια] ON [αντικείμενο] TO [χρήστης]

Οι παράμετροι για την εντολή DENY είναι ίδιες με εκείνες που χρησιμοποιούνται για την εντολή GRANT.

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

DENY DELETE ΣΕ HR.employees ΤΟ Μάθιου