Android

MySQL'de kullanıcıları göstermek / listelemek

Урок 1. MySQL. Основные понятия

Урок 1. MySQL. Основные понятия

İçindekiler:

Anonim

MySQL sunucunuzdaki tüm kullanıcıların bir listesini almanız gerekti mi? Veritabanlarını ve tabloları gösterme komutları vardır, ancak MySQL show users komutu yoktur.

Bu öğreticide, MySQL veritabanı sunucusundaki tüm kullanıcı hesaplarının komut satırı üzerinden nasıl listeleneceği açıklanmaktadır. Ayrıca, belirli bir veritabanına hangi kullanıcıların erişebildiğini nasıl bulacağınızı da göstereceğiz.

Sen başlamadan önce

Sisteminizde zaten MySQL veya MariaDB sunucunuzun yüklü olduğunu varsayıyoruz.

Tüm komutlar MySQL kabuğunun içinde kök kullanıcı olarak yürütülür. MySQL kabuğuna erişmek için aşağıdaki komutu yazın ve istendiğinde MySQL kök kullanıcı parolanızı girin:

mysql -u root -p MySQL kök parolanızı unuttuysanız, bu talimatları izleyerek sıfırlayabilirsiniz.

Tüm MySQL Kullanıcılarını Göster

MySQL, kullanıcılar hakkındaki bilgileri mysql veritabanında user adlı bir tabloda saklar.

Tüm MySQL kullanıcı hesaplarının bir listesini almak için, mysql.users tablosundan tüm satırları almak üzere SELECT deyimini kullanın:

SELECT User, Host FROM mysql.user;

Çıktı aşağıdakine benzer olmalıdır:

+------------------+-----------+ | 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)

Yukarıdaki komut mysql.user tablosundan ( User ve Host ) yalnızca iki sütun gösterir. Bu tablo, Password , Select_priv , Update_priv vb. Gibi 40'tan fazla sütun içerir.

MySQL'deki bir kullanıcı hesabı iki bölümden oluşur: bir kullanıcı adı ve ana bilgisayar adı.

desc mysql.user; kullanın desc mysql.user; tablonun sütunları hakkında bilgi görüntülemek için deyim. Sütun adını öğrendikten sonra, seçilen verilere karşı bir sorgu çalıştırabilirsiniz.

Örneğin, parola ve etkin veya süresi dolmuş hakkında bilgiler de dahil olmak üzere tüm MySQL kullanıcı hesaplarının bir listesini almak için aşağıdaki sorguyu kullanırsınız:

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)

Belirli Bir Veritabanına Erişimi Olan Kullanıcıları Göster

Veritabanı düzeyinde ayrıcalıklar hakkında bilgi mysql.db tablosunda depolanır.

Belirli bir veritabanına hangi kullanıcıların erişebildiğini ve ayrıcalıkların seviyesini öğrenmek için tabloyu sorgulayabilirsiniz.

Örneğin, db_name adlı veritabanına düzey erişimi olan tüm kullanıcıların bir listesini almak için aşağıdaki sorguyu kullanırsınız:

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)

Ayrıcalıkları kullanmadan yalnızca belirli bir veritabanına erişimi olan kullanıcı hesapları hakkında bilgi almak için:

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

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

Aşağıdaki sorgu size tüm veritabanları ve ilişkili kullanıcılar hakkında bilgi gösterecektir:

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 | +------------------+-----------+-----------+

Sonuç

Bu eğitimde, tüm MySQL kullanıcılarının bir listesini nasıl alacağımızı ve hangi kullanıcıların belirli bir veritabanına erişebileceğini nasıl göstereceğimizi gösterdik.

Herhangi bir sorunuz varsa yorum bırakmaktan çekinmeyin.

mysql mariadb