How to Create MySQL Users Accounts and Grant Privileges

Πώς να δημιουργήσετε λογαριασμούς χρηστών MySQL και να παραχωρήσετε δικαιώματα 

 

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

Αυτό το σεμινάριο περιγράφει πώς να δημιουργείτε λογαριασμούς χρηστών MySQL και να χορηγείτε δικαιώματα.

Πριν ξεκινήσεις

Υποθέτουμε ότι έχετε ήδη εγκαταστήσει το διακομιστή MySQL ή MariaDB στο σύστημά σας.

Όλες οι εντολές εκτελούνται μέσα στο κέλυφος MySQL ως χρήστης root ή διαχειριστής. Τα ελάχιστα δικαιώματα που απαιτούνται για τη δημιουργία λογαριασμών χρηστών και τον ορισμό των προνομίων τους είναι CREATE USERκαι GRANT.

Για να αποκτήσετε πρόσβαση στο κέλυφος MySQL πληκτρολογήστε την ακόλουθη εντολή και εισαγάγετε τον κωδικό πρόσβασης ρίζας χρήστη MySQL όταν σας ζητηθεί:

# mysql -u root -p

Εάν διαθέτετε MySQL έκδοση 5.7 ή μεταγενέστερη που χρησιμοποιεί τη auth_socketσύνδεση προσθήκης ως root, πληκτρολογώντας:

# sudo mysql

Δημιουργήστε έναν νέο λογαριασμό χρήστη MySQL

Ένας λογαριασμός χρήστη στη MySQL αποτελείται από δύο μέρη: όνομα χρήστη και όνομα κεντρικού υπολογιστή.

Για να δημιουργήσετε έναν νέο λογαριασμό χρήστη MySQL, εκτελέστε την ακόλουθη εντολή:

mysql># CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'user_password';
*Αντικαταστήστε newuserμε το νέο όνομα χρήστη και user_passwordτον κωδικό πρόσβασης χρήστη.*

Στο παραπάνω παράδειγμα, το τμήμα ονόματος κεντρικού υπολογιστή έχει οριστεί σε localhost, το οποίο σημαίνει ότι ο χρήστης θα μπορεί να συνδεθεί στον διακομιστή MySQL μόνο από το localhost (δηλαδή από το σύστημα όπου εκτελείται ο διακομιστής MySQL).

Για να παραχωρήσετε πρόσβαση από άλλο κεντρικό υπολογιστή, αλλάξτε το τμήμα ονόματος κεντρικού υπολογιστή με το IP του απομακρυσμένου μηχανήματος. Για παράδειγμα, για να παραχωρήσετε πρόσβαση από ένα μηχάνημα με IP 10.8.0.5θα εκτελούσατε:

mysql># CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'user_password';

Για να δημιουργήσετε έναν χρήστη που μπορεί να συνδεθεί από οποιονδήποτε κεντρικό υπολογιστή, χρησιμοποιήστε το '%'μπαλαντέρ ως μέρος του κεντρικού υπολογιστή:

mysql>#  CREATE USER 'newuser'@'%' IDENTIFIED BY 'user_password';

Εκχωρήστε δικαιώματα σε έναν λογαριασμό χρήστη MySQL

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

Τα πιο συχνά χρησιμοποιούμενα προνόμια είναι:

  • ALL PRIVILEGES – Εκχωρεί όλα τα δικαιώματα σε έναν λογαριασμό χρήστη.
  • CREATE– Ο λογαριασμός χρήστη επιτρέπεται να δημιουργεί βάσεις δεδομένων και πίνακες.
  • DROP– Ο λογαριασμός χρήστη επιτρέπεται να αφήνει βάσεις δεδομένων και πίνακες.
  • DELETE – Ο λογαριασμός χρήστη επιτρέπεται να διαγράφει σειρές από έναν συγκεκριμένο πίνακα.
  • INSERT – Ο λογαριασμός χρήστη επιτρέπεται να εισάγει σειρές σε έναν συγκεκριμένο πίνακα.
  • SELECT – Ο λογαριασμός χρήστη επιτρέπεται να διαβάζει μια βάση δεδομένων.
  • UPDATE – Ο λογαριασμός χρήστη επιτρέπεται να ενημερώνει σειρές πινάκων.

Για να εκχωρήσετε συγκεκριμένα δικαιώματα σε έναν λογαριασμό χρήστη, χρησιμοποιήστε την ακόλουθη σύνταξη:

mysql># GRANT permission1, permission2 ON database_name.table_name TO 'database_user'@'localhost';

Ορίστε μερικά παραδείγματα:

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

mysql># GRANT ALL PRIVILEGES ON database_name.* TO 'database_user'@'localhost';
  • Όλα τα προνόμια σε έναν λογαριασμό χρήστη σε όλες τις βάσεις δεδομένων:
mysql>#  GRANT ALL PRIVILEGES ON *.* TO 'database_user'@'localhost';

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

mysql>#  GRANT ALL PRIVILEGES ON database_name.table_name TO 'database_user'@'localhost';

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

mysql># GRANT SELECT, INSERT, DELETE ON database_name.* TO database_user@'localhost';

Εμφάνιση προνομίων λογαριασμού χρήστη MySQL

Για να βρείτε τα δικαιώματα που έχουν εκχωρηθεί σε έναν συγκεκριμένο λογαριασμό χρήστη MySQL, χρησιμοποιήστε τη SHOW GRANTSδήλωση:

mysql># SHOW GRANTS FOR 'database_user'@'localhost';

Η έξοδος θα μοιάζει παρακάτω:

+---------------------------------------------------------------------------+ | Grants for database_user@localhost | +---------------------------------------------------------------------------+ | GRANT USAGE ON *.* TO 'database_user'@'localhost' | | GRANT ALL PRIVILEGES ON `database_name`.* TO 'database_user'@'localhost' | +---------------------------------------------------------------------------+ 2 rows in set (0.00 sec)

Ανάκληση δικαιωμάτων από έναν λογαριασμό χρήστη MySQL

mysql># REVOKE ALL PRIVILEGES ON database_name.* FROM ‘database_user’@’localhost’;

Καταργήστε έναν υπάρχοντα λογαριασμό χρήστη MySQL

Για να διαγράψετε έναν λογαριασμό χρήστη MySQL χρησιμοποιήστε τη DROP USERδήλωση:

mysql># DROP USER 'user'@'localhost'

Η παραπάνω εντολή θα καταργήσει τον λογαριασμό χρήστη και τα δικαιώματά του.

συμπέρασμα

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