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.dbKalifikasyon 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
mysqlveritabanı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.dbveya 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 GRANTjoker karakterler içerebileceğini unutmayın . LIKESorguda ş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';