¿Cómo obtener una lista de cuentas de usuario usando la línea de comando en MySQL?
Frecuentes
Visto 1,423 veces
1367
Estoy usando la utilidad de línea de comandos de MySQL y puedo navegar a través de una base de datos. Ahora necesito ver una lista de cuentas de usuario. ¿Cómo puedo hacer esto?
Estoy usando la versión de MySQL 5.4.1
.
15 Respuestas
1867
Utilice esta consulta:
SELECT User FROM mysql.user;
Lo que generará una tabla como esta:
+-------+
| User |
+-------+
| root |
+-------+
| user2 |
+-------+
Como Matthew Scharley señala en los comentarios sobre esta respuesta, puede agrupar por User
columna si solo desea ver nombres de usuario únicos.
contestado el 23 de mayo de 17 a las 13:05
Creo que puede ser necesario agrupar en User
también, para obtener solo valores de usuario únicos, ya que hay una fila separada para cada user
@host
entrada. - Mateo Scharley
¿Cómo encontrar la misma información sin consulta SQL? - Divyanshu Das
@barrycarter DELETE FROM mysql.user;
mejor tener WHERE user='someuser' and host='somehost';
Si lo hace DELETE FROM mysql.user;
, todos los usuarios se han ido. Inicios de sesión después del próximo reinicio de mysql o FLUSH PRIVILEGES;
eliminar usuarios de la memoria. Aquí hay un ejemplo de una de mis publicaciones sobre cómo hacer DELETE FROM mysql.user
responsablemente: dba.stackexchange.com/questions/4614/… - RolandoMySQLDBA
@Geoffrey SHOW GRANTS FOR 'user'@'host';
- pantalones de lujo
en lugar de agrupar, puede usar DISTINCT
palabra clave: SELECT DISTINCT user FROM mysql.user;
- user2683246
448
Encuentro que este formato es el más útil, ya que incluye el campo de host que es importante en MySQL para distinguir entre registros de usuario.
select User,Host from mysql.user;
Respondido 06 Jul 12, 19:07
Sólo curioso. Cuando sera esto host
entran en juego cuando se trabaja con bases de datos mysql? [Mysql Noob] - Prabhakar Undurti
@Packer el host
entra en juego cuando se conecta desde un servidor diferente. Es posible otorgar diferentes accesos a 'packer'@'example.com'
y 'packer'@'google.com'
- ray baxter
120
Una cuenta de usuario comprende el nombre de usuario y el acceso a nivel de host.
Por tanto, esta es la consulta que le da a todas las cuentas de usuario
SELECT CONCAT(QUOTE(user),'@',QUOTE(host)) UserAccount FROM mysql.user;
Respondido el 29 de Septiembre de 13 a las 23:09
Esto es básicamente lo mismo que la respuesta de spkane. ¿Cuál es el beneficio de concatenar las columnas de usuario y de host? - Iain Samuel McLean Anciano
Un ejemplo: el user@host
El formato se utiliza para establecer contraseñas. Omitir el anfitrión de la SET PASSWORD
El comando produce un error. SET PASSWORD FOR wordpressuser = PASSWORD('...');
produce el error ERROR 1133 (42000): Can't find any matching row in the user table
. Incluya el anfitrión y funciona. SET PASSWORD FOR wordpressuser@localhost = PASSWORD('...');
produce Query OK, 0 rows affected (0.00 sec)
. - Iain Samuel McLean Anciano
La mejor respuesta, sea lo que sea de lo que se quejen los detractores. Lo único que cambiaría sería agregar un ORDER BY user
lo. - sjas
48
para evitar repeticiones de usuarios cuando se conectan desde diferente origen:
select distinct User from mysql.user;
Respondido el 29 de Septiembre de 13 a las 23:09
31
MySQL almacena la información del usuario en su propia base de datos. El nombre de la base de datos es MySQL
. Dentro de esa base de datos, la información del usuario está en una tabla, un conjunto de datos, llamado user
. Si desea ver qué usuarios están configurados en la tabla de usuarios de MySQL, ejecute el siguiente comando:
SELECT User, Host FROM mysql.user;
+------------------+-----------+
| User | Host |
+------------------+-----------+
| root | localhost |
| root | demohost |
| root | 127.0.0.1 |
| debian-sys-maint | localhost |
| | % |
+------------------+-----------+
respondido 27 nov., 17:04
30
Si se refiere a los usuarios reales de MySQL, intente:
select User from mysql.user;
Respondido 16 Jul 09, 04:07
23
SELECT * FROM mysql.user;
Es una tabla grande, por lo que es posible que desee ser más selectivo en los campos que elija.
Respondido 16 Jul 09, 04:07
Tengo 3 usuarios raíz con diferentes hosts. localhost
, 127.0.0.1
y ::1
. ¿Cuál debo conservar y qué debo eliminar? ¡Gracias! - emotalidad
Si no desea que las personas se conecten a través de la red, el antiguo estándar era eliminarlos todos. Hoy en día, sin embargo, parece que la recomendación es mantener los de host local, ya que de todos modos no son accesibles a través de la red; esto significa que en su lugar deberías guardar todos ellos. - trisis
18
Inicie sesión en mysql como root y escriba la siguiente consulta
select User from mysql.user;
+------+
| User |
+------+
| amon |
| root |
| root |
+------+
respondido 04 mar '14, 06:03
Diría +1 por mencionar el inicio de sesión como root. Intenté sin hacerlo y no funcionó;) - Leenephi
Debe otorgar privilegios al usuario1 para mostrar la lista de usuarios. Sin el usuario root obtendrá un error. Así que primero proporcione los privilegios. Inicie sesión como usuario root y luego escriba el comando GRANT SELECT ON mysql.user TO 'user1'@'localhost';
ahora inicie sesión como usuario1 y escriba el comando select User from mysql.user;
Verá que se muestra la lista de usuarios. :) +1 Disfruta - Sandip Divekar
15
La tabla mysql.db es posiblemente más importante para determinar los derechos de los usuarios. Creo que se crea una entrada si menciona una tabla en el comando GRANT. En mi caso, la tabla mysql.users no mostró permisos para un usuario cuando obviamente pudo conectarse y seleccionar, etc.
mysql> select * from mysql.db;
mysql> select * from db;
+---------------+-----------------+--------+-------------+-------------+-------------+--------
| Host | Db | User | Select_priv | Insert_priv | Update_priv | Del...
Respondido 22 ago 15, 09:08
En mi opinión, lo importante es lo que los usuarios pueden hacer en la base de datos. Entonces, "MOSTRAR SUBVENCIONES" es bastante útil ya que muestra quién tiene permitido hacer qué. - Desarrollador Marius Žilėnas
12
Utilizo esto para ordenar los usuarios, por lo que los hosts permitidos son más fáciles de detectar:
mysql> SELECT User,Host FROM mysql.user ORDER BY User,Host;
respondido 02 nov., 16:19
11
Esto muestra la lista de usuarios únicos:
SELECT DISTINCT User FROM mysql.user;
respondido 16 nov., 18:07
11
Peter y Jesse tienen razón, pero asegúrese de seleccionar primero la base de datos mysql.
use mysql;
select User from mysql.user;
eso debería hacer tu truco
Respondido el 30 de Septiembre de 20 a las 16:09
No es necesario use mysql;
en caso de que amplíe la tabla a la base de datos mysql como lo hizo. Tu puedes sólo select User from mysql.user;
- vitaLee
Adición use mysql;
es solo para que puedas usar select User from user;
select User from mysql.user;
dado que generalmente es una consulta de una sola vez, no es necesario usar la base de datos mysql - Dan
después de use mysql
si hubieras usado select user from user;
de lo que podría haber sido algo, pero en su lugar estás usando mysql.user
, lo que hace que usar use mysql
al principio innecesario. - Sнаđошƒаӽ
5
$> mysql -u root -p -e 'Select user from mysql.user' > allUsersOnDatabase.txt
Al ejecutar este comando en el indicador de Linux, primero se solicitará la contraseña del usuario root de mysql, al proporcionar la contraseña correcta, se imprimirán todos los usuarios de la base de datos en el archivo de texto.
respondido 02 mar '18, 21:03
3
Encontré el suyo más útil, ya que proporciona información adicional sobre los privilegios DML y DDL.
SELECT user, Select_priv, Insert_priv , Update_priv, Delete_priv,
Create_priv, Drop_priv, Shutdown_priv, Create_user_priv
FROM mysql.user;
Respondido el 14 de diciembre de 17 a las 16:12
0
SELECT User FROM mysql.user;
use la consulta anterior para obtener usuarios de Mysql
Respondido 15 Feb 19, 05:02
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas mysql command-line mysql5 or haz tu propia pregunta.
@Mustapha ¿Por qué cambia el título? Estas respuestas aquí son SQL que puede ejecutar desde cualquier lugar, no solo una línea de comando. ¿Y qué agrega esa etiqueta a la pregunta? - Rup
El propósito de mi edición era mantener la coherencia entre el título y la descripción, pero creo que tiene un buen punto. Haga su edición Sr. @Rup - Mustapha Hadid