MySQL'de kullanıcının ayrıcalıklarını nasıl gösterebilirim?


69

Kullanıcı ayrıcalıklarını aşağıdaki basit şekilde ayarlayabileceğimi biliyorum:

grant all on [database name].[table name] to [user name]@[host name];

Ancak mevcut ayrıcalıkları nasıl görebilirim?

Hibede kullanılanlara benzer verileri görmem gerekiyor. Başka bir deyişle, belirli bir kullanıcının belirli bir ana bilgisayardan belirli bir veritabanının belirli bir tablosuna belirli bir erişimi olduğunu bilmek istiyorum.

Onu nasıl alabilirim?

Yanıtlar:



51

İşte MySQL Dokümantasyon için SHOW GRANTS:

SHOW GRANTS [FOR user]

Bu ifade, bir MySQL kullanıcı hesabına verilen ayrıcalıkları çoğaltmak için verilmesi gereken GRANT ifadesini veya ifadelerini listeler. Hesap, GRANT deyimindeki aynı format kullanılarak adlandırılır; örneğin, 'jeffrey' @ 'localhost'. Hesap adının yalnızca kullanıcı adı kısmını belirtirseniz, '%' adının ana bilgisayar adı kullanılır. Hesap adlarının belirlenmesi hakkında ek bilgi için, bkz. Bölüm 12.5.1.3, “GRANT Sözdizimi”.

mysql> SHOW GRANTS FOR 'root'@'localhost';
+---------------------------------------------------------------------+
| Grants for root@localhost                                           |
+---------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION |
+---------------------------------------------------------------------+

Sunucuya bağlanmak için kullandığınız hesaba verilen ayrıcalıkları listelemek için aşağıdaki ifadelerden birini kullanabilirsiniz:

SHOW GRANTS;
SHOW GRANTS FOR CURRENT_USER;
SHOW GRANTS FOR CURRENT_USER();

MySQL 5.0.24'ten itibaren, CURRENT_USER (veya eşdeğer sözdizimlerinin herhangi biri) için DEFINER bağlamında DEFINER bağlamında kullanıldığında, örneğin SQL SECURITY DEFINER ile tanımlanan saklı bir prosedürde kullanılırsa, görüntülenen hibeler tanımlayıcıya aittir. invoker değil.

SHOW GRANTS, yalnızca belirtilen hesaba açıkça verilen ayrıcalıkları görüntüler. Hesapta diğer ayrıcalıklar mevcut olabilir, ancak görüntülenemiyorlar. Örneğin, anonim bir hesap varsa, adlandırılmış hesap ayrıcalıklarını kullanabilir, ancak SHOW GRANTS bunları göstermez.

SHOW GRANTS, mysql veritabanı için SELECT ayrıcalığını gerektirir.


SHOW GRANTS requires the SELECT privilege for the mysql system database, except to display privileges and roles for the current user.
Sandip Bhattacharya
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.