Devo selezionare tutti gli utenti con qualsiasi privilegio per il database (ad esempio database 'mysql'). Eventuali suggerimenti? Grazie.Mostra utenti con privilegi sul database. MySQL
risposta
Consultare il database mysql
(un db effettivo denominato mysql
all'interno del server mysql, per essere chiari). Ci sono tre tavoli (db
, tables_priv
, e columns_priv
) in cui sono memorizzati i db/tavolo/privs colonna:
SELECT 'db', User, Host
FROM db
WHERE Db='mydatabase'
UNION
SELECT 'table', User, Host
FROM tables_priv
WHERE Db='mydatabase'
UNION
SELECT 'col', User, Host
FROM columns_priv
WHERE Db='mydatabase'
dovrebbe mostrare quello che ti serve.
Una buona visione di tutti gli utenti e dei loro privilegi approssimativi. Se c'è una password, lo farà con una stringa enciclopedia; in caso contrario, questo campo è vuoto. Select è un privilegio molto generale; insert consente la manipolazione della tabella all'interno di un database; shutdown consente le principali modifiche al sistema e dovrebbe essere utilizzabile solo da root; la possibilità di concedere autorizzazioni è separata dalle altre.
SELECT user, host, password, select_priv, insert_priv, shutdown_priv, grant_priv
FROM mysql.user
Visualizza le autorizzazioni per i singoli database.
SELECT user, host, db, select_priv, insert_priv, grant_priv FROM mysql.db
database privileges sono memorizzati in
mysql.db
table privileges sono memorizzati in
mysql.tables_priv
column privileges sono memorizzati in
mysql.columns_priv
routine privileges sono memorizzati in 012.
È possibile definire una procedura di memorizzazione per elencare i privilegi:
delimiter //
CREATE PROCEDURE list_privileges (IN db_name CHAR(50))
BEGIN
SELECT concat(Db,'.', '*') as 'what', User, Host, '...' as 'perms'
FROM mysql.db
WHERE Db=db_name
UNION
SELECT concat(Db,'.', Table_name), User, Host, table_priv
FROM mysql.tables_priv
WHERE Db=db_name and table_priv != ''
UNION
SELECT concat(Db,'.', Table_name, '(', Column_name,')'), User, Host, Column_priv
FROM mysql.columns_priv
WHERE Db=db_name
UNION
SELECT concat(Db,'.', Routine_name, '()'), User, Host, Proc_priv
FROM mysql.procs_priv
WHERE Db=db_name;
END//
delimiter ;
esempio:
mysql> call list_privileges("testlink2");
+-----------------------------+-----------+-----------+---------+
| what | User | Host | perms |
+-----------------------------+-----------+-----------+---------+
| testlink2.* | testlink2 | % | ... |
| testlink2.* | testlink2 | localhost | ... |
| testlink2.executions | testlink2 | % | Select |
| testlink2.users(id) | testlink2 | % | Select |
| testlink2.list_privileges() | testlink2 | % | Execute |
+-----------------------------+-----------+-----------+---------+
5 rows in set (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
- 1. SELEZIONA utenti dal database MySQL con privilegi bitmask?
- 2. non può concedere privilegi al database mysql
- 3. Rimuovere i privilegi dal database MySQL
- 4. MySQL: creazione di un utente con privilegi di root
- 5. mySQL mostra il database per l'utente
- 6. Oracle - concedere privilegi a tutti gli utenti
- 7. Esiste il controllo dell'accesso per i database CouchDB come PostgreSQL e la gestione dei privilegi MySQL?
- 8. Persi tutti i privilegi in MySQL
- 9. Uso di utenti mysqldump e database
- 10. Mostra tutte le viste sul database di Oracle
- 11. Mostra solo tabelle con determinati modelli in mysql "mostra tabelle"
- 12. Accesso Python Anywhere negato al database MySQL
- 13. Hibernate query sul database
- 14. Posso usare ALTER DATABASE per rinominare un database mysql?
- 15. Crea utente e database MySQL da PHP
- 16. Utilizzare la stessa query MySQL con tutti gli utenti senza dover riconnettersi al database
- 17. App Mac App con privilegi elevati
- 18. MySQL, convincere gli utenti rango
- 19. Semplice connessione al database MySQL Amazon RDS con MySQL Workbench
- 20. Sincronizzare i database MySQL locali con un database cloud
- 21. backup del database mysql con mysqldump
- 22. Calcolare gli utenti più vicine MySQL
- 23. Qualche buona esercitazione sul database relazionale?
- 24. Spring Boot Actuator/endpoint salute non mostra le informazioni sul database o sul file system
- 25. Mostra host MySQL tramite SQL Command
- 26. Come concedere i privilegi di amministrazione del server MySQL (SUPER, RELOAD ...) con ansible?
- 27. MySQL mostra le informazioni di connessione corrente
- 28. Scrivi privilegi - localhost - Mac OSX
- 29. Database di sincronizzazione sqlite con mysql
- 30. Connessione al database MySQL con RMySQL