Βίντεο: SQL Tutorial - Full course for beginners 2024
Όταν εγκαθίσταται η MySQL, δημιουργεί αυτόματα μια βάση δεδομένων που ονομάζεται mysql . Όλες οι πληροφορίες που χρησιμοποιούνται για την προστασία των δεδομένων σας αποθηκεύονται σε αυτήν τη βάση δεδομένων, συμπεριλαμβανομένων των ονομάτων λογαριασμών, ονομάτων κεντρικών υπολογιστών, κωδικών πρόσβασης και προνομίων.
Τα προνόμια αποθηκεύονται σε στήλες. Η μορφή κάθε ονόματος στήλης είναι προνόμιο _priv, στο οποίο το προνόμιο είναι ένα ειδικό προφίλ λογαριασμού. Για παράδειγμα, η στήλη που περιέχει τα δικαιώματα ALTER ονομάζεται alter_priv. Η τιμή σε κάθε στήλη προνομίων είναι Y ή N, δηλαδή ναι ή όχι.
Η βάση δεδομένων mysql περιέχει τους ακόλουθους πίνακες που αποθηκεύουν τα προνόμια:
user
-
table: Αυτός ο πίνακας αποθηκεύει δικαιώματα που ισχύουν για όλες τις βάσεις δεδομένων και τους πίνακες. Περιέχει μια σειρά για κάθε έγκυρο λογαριασμό που περιλαμβάνει το όνομα χρήστη, το όνομα κεντρικού υπολογιστή και τον κωδικό πρόσβασης. Ο διακομιστής MySQL απορρίπτει μια σύνδεση για έναν λογαριασμό που δεν υπάρχει σε αυτόν τον πίνακα.
-
πίνακας: Αυτός ο πίνακας αποθηκεύει τα δικαιώματα που ισχύουν σε μια συγκεκριμένη βάση δεδομένων. Περιέχει μια σειρά για τη βάση δεδομένων, η οποία δίνει δικαιώματα σε ένα όνομα λογαριασμού και ένα όνομα κεντρικού υπολογιστή. Ο λογαριασμός πρέπει να υπάρχει στον πίνακα χρηστών για τα δικαιώματα που πρέπει να χορηγηθούν. Προνόμια που δίνονται στον πίνακα πίνακα χρηστών παραβιάζουν δικαιώματα σε αυτόν τον πίνακα. Για παράδειγμα, αν ο πίνακας χρηστών έχει μια γραμμή για τον σχεδιαστή του λογαριασμού που δίνει τα δικαιώματα INSERT, ο σχεδιαστής μπορεί να εισαγάγει όλες τις βάσεις δεδομένων. Εάν μια γραμμή στον πίνακα db εμφανίζει το Ν για το INSERT για το λογαριασμό σχεδιαστή στη βάση δεδομένων PetCatalog, ο πίνακας χρηστών το αγνοεί και ο σχεδιαστής μπορεί να εισαχθεί στη βάση δεδομένων PetCatalog.
-
πίνακας: Αυτός ο πίνακας ελέγχει την πρόσβαση σε μια βάση δεδομένων, ανάλογα με τον κεντρικό υπολογιστή. Ο πίνακας υποδοχής λειτουργεί με τον πίνακα db. Εάν μια γραμμή στον πίνακα db έχει ένα κενό πεδίο για τον κεντρικό υπολογιστή, η MySQL ελέγχει τον πίνακα host για να δει εάν το db έχει μια σειρά εκεί. Με αυτόν τον τρόπο, μπορείτε να επιτρέψετε την πρόσβαση σε ένα db από κάποιους κεντρικούς υπολογιστές, αλλά όχι από άλλους. Για παράδειγμα, ας υποθέσουμε ότι έχετε δύο βάσεις δεδομένων: db1 και db2. Η βάση δεδομένων db1 έχει ευαίσθητες πληροφορίες, οπότε θέλετε μόνο ορισμένα άτομα να το βλέπουν. Η βάση δεδομένων db2 διαθέτει πληροφορίες που θέλετε να βλέπουν όλοι. Εάν έχετε μια γραμμή στον πίνακα db για το db1 με ένα κενό πεδίο κεντρικού υπολογιστή, μπορείτε να έχετε δύο σειρές για το db1 στον πίνακα υποδοχής.
Μια σειρά μπορεί να δώσει όλα τα δικαιώματα στους χρήστες που συνδέονται από έναν συγκεκριμένο κεντρικό υπολογιστή, ενώ μια άλλη σειρά μπορεί να αρνηθεί δικαιώματα σε χρήστες που συνδέονται από οποιονδήποτε άλλον κεντρικό υπολογιστή.
tables_priv
-
πίνακας: Αυτός ο πίνακας αποθηκεύει τα δικαιώματα που ισχύουν για συγκεκριμένους πίνακες. columns_priv
-
πίνακας: Αυτός ο πίνακας αποθηκεύει τα δικαιώματα που ισχύουν σε συγκεκριμένες στήλες. Μπορείτε να δείτε και να αλλάξετε τους πίνακες στο mysql απευθείας εάν χρησιμοποιείτε έναν λογαριασμό που έχει τα απαραίτητα δικαιώματα. Μπορείτε να χρησιμοποιήσετε ερωτήματα SQL όπως SELECT, INSERT και UPDATE. Εάν έχετε πρόσβαση στην MySQL μέσω του εργοδότη σας, ενός πελάτη ή μιας εταιρίας φιλοξενίας ιστοσελίδων, πιθανότατα δεν έχετε λογαριασμό με τα απαραίτητα προνόμια.