usuarios - verificar permissões usuários mysql




Como obter uma lista de contas de usuários do MySQL (10)

Estou usando o utilitário de linha de comando do MySQL e posso navegar por um banco de dados. Agora preciso ver uma lista de contas de usuários. Como posso fazer isso?

Estou usando o MySQL versão 5.4.1 .


A tabela mysql.db é possivelmente mais importante na determinação dos direitos do usuário. Eu acho que uma entrada nela é criada se você mencionar uma tabela no comando GRANT. No meu caso, a tabela mysql.users não mostrava permissões para um usuário quando obviamente era capaz de se conectar e selecionar, etc.

mysql> select * from mysql.db;
mysql> select * from db;
+---------------+-----------------+--------+-------------+-------------+-------------+--------
| Host          | Db              | User   | Select_priv | Insert_priv | Update_priv | Del...

Acho este formato o mais útil, pois inclui o campo do host, que é importante no MySQL para distinguir entre os registros do usuário.

select User,Host from mysql.user;

Eu uso isso para classificar os usuários, para que os hosts permitidos sejam mais fáceis de detectar:

mysql> SELECT User,Host FROM mysql.user ORDER BY User,Host;

Faça o login no mysql como root e digite a seguinte consulta

select User from mysql.user;

+------+
| User |
+------+
| amon |
| root |
| root |
+------+

O MySQL armazena as informações do usuário em seu próprio banco de dados. O nome do banco de dados é MySQL . Dentro desse banco de dados, as informações do usuário estão em uma tabela, um conjunto de dados, chamado user . Se você quiser ver quais usuários estão configurados na tabela de usuários do MySQL, execute o seguinte comando:

SELECT User, Host FROM mysql.user;

+------------------+-----------+
| User             | Host      |
+------------------+-----------+
| root             | localhost |
| root             | demohost  |
| root             | 127.0.0.1 |
| debian-sys-maint | localhost |
|                  | %         |
+------------------+-----------+

Peter e Jesse estão corretos, mas apenas certifique-se de selecionar primeiro o banco de dados do mysql.

use mysql;

select User from mysql.user;

isso deve fazer o seu truque


Uma conta de usuário inclui o nome de usuário e o acesso no nível do host.

Portanto, esta é a consulta que fornece todas as contas de usuário

SELECT CONCAT(QUOTE(user),'@',QUOTE(host)) UserAccount FROM mysql.user;

Use esta consulta:

SELECT User FROM mysql.user;

Qual será a saída de uma tabela como esta:

+-------+
| User  |
+-------+
| root  |
+-------+
| user2 |
+-------+

Como Matthew Scharley aponta nos comentários sobre essa resposta , você pode agrupar pela coluna User se quiser apenas ver nomes de usuários exclusivos.


SELECT * FROM mysql.user;

É uma grande mesa, então você pode querer ser mais seletivo em quais campos você escolhe.


$>  mysql -u root -p -e 'Select user from mysql.user' > allUsersOnDatabase.txt

Executar este comando no prompt do Linux irá primeiro pedir a senha do usuário root do mysql, ao fornecer a senha correta, ele irá imprimir todos os usuários do banco de dados no arquivo de texto.







mysql5