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

Πώς να χρησιμοποιήσετε την εντολή CREATE USER του MySQL

Κατά την εγκατάσταση του συστήματος διαχείρισης βάσεων δεδομένων, το MySQL δημιουργεί αυτόματα έναν λογαριασμό root. Αυτός ο λογαριασμός σας παρέχει πλήρη έλεγχο των βάσεων δεδομένων, των πινάκων και των χρηστών σας, επιτρέποντας την αποτελεσματική διαχείριση. Εάν χρειάζεστε βοήθεια με τη διαδικασία εγκατάστασης, το σεμινάριο MySQL περιέχει όλες τις απαραίτητες πληροφορίες.

Με τον λογαριασμό root, μπορείτε να δημιουργήσετε επιπλέον λογαριασμούς χρηστών ή νέους χρήστες MySQL και να τους εκχωρήσετε δικαιώματα. Σε συστήματα Ubuntu με MySQL 5.7 ή νεότερες εκδόσεις, ο χρήστης root του MySQL έχει ρυθμιστεί από προεπιλογή να πιστοποιείται με το plugin auth_socket αντί για κωδικό πρόσβασης. Αυτό σημαίνει ότι αν το όνομα του χρήστη του συστήματος που καλεί τον πελάτη MySQL διαφέρει από το όνομα του χρήστη MySQL που καθορίζεται στην εντολή, θα πρέπει να προθέσετε το πρόθεμα sudo στην εντολή για να αποκτήσετε πρόσβαση στον λογαριασμό root:

$ sudo mysql
bash

Για να δημιουργήσετε έναν νέο χρήστη στο MySQL, χρησιμοποιήστε την εντολή CREATE USER. Αυτό σας επιτρέπει να δημιουργήσετε έναν χρήστη με συγκεκριμένο όνομα χρήστη και κωδικό πρόσβασης:

mysql> CREATE USER 'username'@'host' IDENTIFIED WITH authentication_plugin BY 'password';
bash

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

Κατά την επιλογή του plugin πιστοποίησης, έχετε διάφορες επιλογές. Το plugin auth_socket προσφέρει υψηλή ασφάλεια, απαιτώντας από τους χρήστες να εισάγουν έναν κωδικό πρόσβασης για πρόσβαση στη βάση δεδομένων. Ωστόσο, περιορίζει τις απομακρυσμένες συνδέσεις, απαιτώντας ενδεχομένως περισσότερη προσπάθεια για την αλληλεπίδραση εξωτερικών προγραμμάτων με το MySQL. Εναλλακτικά, μπορείτε να παραλείψετε το τμήμα WITH authentication_plugin της εντολής για την πιστοποίηση χρηστών χρησιμοποιώντας το τυπικό plugin caching_sha2_password του MySQL. Η εντολή θα έχει την εξής μορφή:

mysql> CREATE USER 'sammy'@'localhost' IDENTIFIED BY 'password';
bash

Αφού δημιουργήσετε έναν νέο χρήστη, πρέπει να του εκχωρήσετε δικαιώματα.

Πώς να εκχωρήσετε δικαιώματα σε χρήστες στο MySQL

Η δημιουργία και η διαχείριση των δικαιωμάτων χρήστη είναι απαραίτητη για τη διατήρηση της ασφάλειας των δεδομένων στο MySQL. Η γενική εντολή για την εκχώρηση δικαιωμάτων χρήστη είναι:

mysql> GRANT PRIVILEGE ON database.table TO 'username'@'host';
bash

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

  • CREATE: Επιτρέπει στους χρήστες να δημιουργήσουν μια βάση δεδομένων ή έναν πίνακα
  • SELECT: Επιτρέπει στους χρήστες να ανακτούν δεδομένα
  • INSERT: Επιτρέπει στους χρήστες να προσθέτουν νέες εγγραφές σε πίνακες
  • UPDATE: Επιτρέπει στους χρήστες να τροποποιούν υπάρχουσες καταχωρήσεις σε πίνακες
  • DELETE: Επιτρέπει στους χρήστες να διαγράφουν καταχωρήσεις πινάκων
  • DROP: Επιτρέπει στους χρήστες να διαγράψουν ολόκληρους πίνακες βάσεων δεδομένων

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

mysql> GRANT SELECT, INSERT, UPDATE ON database.table TO 'username'@'host';
bash

Οι εξουσιοδοτήσεις για όλες τις βάσεις δεδομένων ή τους πίνακες μπορούν επίσης να χορηγηθούν με μία μόνο εντολή, εισάγοντας * αντί για τα μεμονωμένα ονόματα των βάσεων δεδομένων και των πινάκων. Για παράδειγμα, η ακόλουθη εντολή παρέχει σε έναν χρήστη την εξουσιοδότηση να αναζητά δεδομένα (SELECT), να προσθέτει νέες καταχωρήσεις (INSERT) και να αλλάζει υπάρχουσες καταχωρήσεις (UPDATE) σε όλες τις βάσεις δεδομένων και τους πίνακες.

mysql> GRANT SELECT, INSERT, UPDATE ON *.* TO 'username'@'host';
bash

Αφού εκτελέσετε τις εντολές CREATE USER ή GRANT στο MySQL, μπορείτε να χρησιμοποιήσετε την εντολή FLUSH PRIVILEGES για να ενημερώσετε τη βάση δεδομένων. Αυτό επαναφορτώνει τους πίνακες εξουσιοδοτήσεων, διασφαλίζοντας ότι οι νέες εξουσιοδοτήσεις τίθενται σε ισχύ:

mysql> FLUSH PRIVILEGES;
bash

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

Πώς να ανακαλέσετε δικαιώματα χρήστη από χρήστες στο MySQL

Η εντολή REVOKE χρησιμοποιείται για την κατάργηση δικαιωμάτων χρήστη στο MySQL. Η σύνταξη είναι παρόμοια με αυτή της εντολής GRANT. Ωστόσο, με αυτήν την εντολή, πρέπει να χρησιμοποιήσετε FROM αντί για TO:

mysql> REVOKE type_of_permission ON database_name.table_name FROM 'username'@'host';
bash

Για να εμφανίσετε τις τρέχουσες εξουσιοδοτήσεις που έχει ένας χρήστης, μπορείτε να χρησιμοποιήσετε την εντολή SHOW GRANTS:

mysql> SHOW GRANTS FOR 'username'@'host';
bash

Μπορείτε να χρησιμοποιήσετε την εντολή DROP για να διαγράψετε έναν χρήστη:

mysql> DROP USER 'username'@'localhost';
bash

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

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

mysql> exit
bash

45d969e266677cabb44ceaf95418e879

bf812055a1ab3935cb15b43974c56856

01524320532809020958f4b5d042b02d

Go to Main Menu