Android

Πώς να εμφανίσετε / αναφέρετε τους χρήστες στο mysql

Web Programming - Computer Science for Business Leaders 2016

Web Programming - Computer Science for Business Leaders 2016

Πίνακας περιεχομένων:

Anonim

Έχετε ποτέ χρειαστεί να πάρετε μια λίστα με όλους τους χρήστες στο διακομιστή MySQL; Υπάρχουν εντολές για την εμφάνιση βάσεων δεδομένων και πινάκων, αλλά δεν υπάρχει εντολή MySQL show users .

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

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

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

Όλες οι εντολές εκτελούνται μέσα στο κέλυφος MySQL ως χρήστης root. Για να αποκτήσετε πρόσβαση στο shell της MySQL, πληκτρολογήστε την ακόλουθη εντολή και πληκτρολογήστε τον κωδικό πρόσβασης χρήστη MySQL root όταν σας ζητηθεί:

mysql -u root -p Αν ξεχάσατε τον κωδικό πρόσβασης root της MySQL, μπορείτε να την επαναφέρετε ακολουθώντας αυτές τις οδηγίες.

Εμφάνιση όλων των χρηστών της MySQL

Η MySQL αποθηκεύει πληροφορίες σχετικά με τους χρήστες σε έναν πίνακα με όνομα user στη βάση δεδομένων mysql .

Για να λάβετε μια λίστα με όλους τους λογαριασμούς χρηστών της MySQL, χρησιμοποιήστε την SELECT για να ανακτήσετε όλες τις σειρές από τον πίνακα mysql.users :

SELECT User, Host FROM mysql.user;

Η έξοδος θα πρέπει να φαίνεται παρόμοια με την παρακάτω:

+------------------+-----------+ | user | host | +------------------+-----------+ | root | localhost | | luke | % | | yoda | % | | jabba | 10.10.0.6 | | jabba | 10.10.0.9 | | chewbacca | localhost | | leia | localhost | | han | localhost | +------------------+-----------+ 8 rows in set (0.00 sec)

Η παραπάνω εντολή εμφανίζει μόνο δύο στήλες από τον πίνακα mysql.user ( User and Host ). Αυτός ο πίνακας περιέχει περισσότερες από 40 στήλες όπως Password , Select_priv , Update_priv κ.λπ.

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

Χρησιμοποιήστε το desc mysql.user; για να εμφανιστούν πληροφορίες σχετικά με τις στήλες του πίνακα. Αφού γνωρίζετε το όνομα στήλης, μπορείτε να εκτελέσετε ένα ερώτημα σε ένα επιλεγμένο στοιχείο.

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

SELECT User, Host, Password, password_expired FROM mysql.user;

+----------------+-----------+-------------------------------------------+------------------+ | User | Host | Password | password_expired | +----------------+-----------+-------------------------------------------+------------------+ | root | localhost | | N | | luke | % | *ADC3B5B27617732CD6320A2DA976258E149A7EC8 | N | | yoda | % | *9550E004046348198A143A115550E1262209FB6F | N | | jabba | 10.10.0.6 | *F91C86B486B945C083B61A05FF6E197560D187EC | Y | | jabba | 10.10.0.9 | | Y | | chewbacca | localhost | *17F2B1E48029294841AD66772BEBB7E6E6A005AF | N | | leia | localhost | *74409C8DB55AC1A6829D801915981C46EDBFC64A | N | | han | localhost | *7B3022FCAEC3534CE67C68322D8AF0C240D95745 | N | +----------------+-----------+-------------------------------------------+------------------+ 8 rows in set (0.00 sec)

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

Οι πληροφορίες σχετικά με τα δικαιώματα επιπέδου βάσης δεδομένων αποθηκεύονται στον πίνακα mysql.db .

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

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

SELECT * FROM mysql.db WHERE Db = 'db_name'\G;

*************************** 1. row *************************** Host: localhost Db: db_name User: db_user Select_priv: Y Insert_priv: Y Update_priv: Y Delete_priv: Y Create_priv: Y Drop_priv: Y Grant_priv: N References_priv: Y Index_priv: Y Alter_priv: Y Create_tmp_table_priv: Y Lock_tables_priv: Y Create_view_priv: Y Show_view_priv: Y Create_routine_priv: Y Alter_routine_priv: Y Execute_priv: Y Event_priv: Y Trigger_priv: Y 1 row in set (0.00 sec)

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

SELECT db, host, user FROM mysql.db WHERE db = 'db_name'

+---------+-----------+---------+ | db | host | user | +---------+-----------+---------+ | db_name | localhost | db_user | +---------+-----------+---------+

Το παρακάτω ερώτημα θα σας δείξει πληροφορίες σχετικά με όλες τις βάσεις δεδομένων και τους συναφείς χρήστες:

SELECT db, host, user FROM mysql.db WHERE db = 'db_name'

+------------------+-----------+-----------+ | db | host | user | +------------------+-----------+-----------+ | db_name | localhost | db_user | | ghost_production | localhost | chewbacca | | blog_db | localhost | leia | | linuxize | localhost | han | +------------------+-----------+-----------+

συμπέρασμα

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

Μη διστάσετε να αφήσετε ένα σχόλιο εάν έχετε οποιεσδήποτε ερωτήσεις.

mysql mariadb