Yanıtlar:
Mysql örneğine yönetici kullanıcı olarak (genellikle kök olarak) bağlanın ve aşağıdaki komutu verin ...
select user from mysql.db where db='DB_NAME';
select user from mysql.db
Kalifikasyon olmadan çalıştırmak da 2 boş satır döndürür.
user79644'ün yanıtı, kullanıcıları veritabanı düzeyinde ayrıcalıklara sahip olur, ancak yalnızca tablo düzeyinde, sütun düzeyinde veya yordam düzeyinde ayrıcalıklara sahip kullanıcıları özler. Hepsini bulmak için aşağıdaki ifadeleri kullanın:
SELECT user,host FROM db WHERE db='name';
SELECT user,host FROM tables_priv WHERE db='name';
SELECT user,host FROM columns_priv WHERE db='name';
SELECT user,host FROM procs_priv WHERE db='name';
En azından MySQL 5.5'te, sütun düzeyinde ayrıcalıklara sahip olmanın tablo düzeyinde ayrıcalıklara sahip olduğunuzu ima ettiği anlaşılıyor. Tablo düzeyinde ayrıcalıklara sahip olmak, veritabanı düzeyinde ayrıcalıklara sahip olduğunuz anlamına gelmez. Yordam düzeyinde ayrıcalıklardan emin değilim.
ERROR 1046 (3D000): No database selected
mysql
veritabanını kullanmanız gerektiğidir . MySQL tarafından kullanılan tüm veriler burada saklanır. USE mysql;
Tablo adlarına veritabanı adını ekleme komutunu verin FROM mysql.db
veya gibiFROM mysql.tables_priv
# current users that access the db
mysql> show processlist;
+-----+------+-----------+------+---------+------+-------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+-----+------+-----------+------+---------+------+-------+------------------+
| 214 | root | localhost | NULL | Query | 0 | NULL | show processlist |
+-----+------+-----------+------+---------+------+-------+------------------+
# who can access what at anytime and his privilege level
mysql> show grants;
+---------------------------------------------------------------------+
| Grants for root@localhost |
+---------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION |
+---------------------------------------------------------------------+
# what privileges are available
mysql> show privileges;
Veritabanları için MySQL'in GRANT
joker karakterler içerebileceğini unutmayın . LIKE
Sorguda şu şekilde hesaplanmalıdır :
SELECT user,host FROM db WHERE 'name' LIKE db;
SELECT user,host FROM tables_priv WHERE db='name';
SELECT user,host FROM columns_priv WHERE db='name';
SELECT user,host FROM procs_priv WHERE db='name';