MariaDB aceita qualquer senha

6

Executando MariaDB 10.1.23-MariaDB-9 + deb9u1 no Debian 9.1. Instalação fresca do sistema operacional, MariaDB instalado com apt-get install mariadb-server mariadb-client

Aparentemente, o MariaDB não pede uma senha de root na instalação, então vou configurá-la após o fato:

# mysql -uroot
> select user from mysql.user;
+------+
| user |
+------+
| root |
+------+

Ok, então o root existe. Agora, para alterar sua senha:

> set password for 'root'@'localhost' = PASSWORD('P@ssw0rd');
> flush privileges;
> exit

Funcionou?

# mysql -uroot -pblabla
MariaDB [(none)]>

A configuração da senha foi ok, mas por que o MariaDB está aceitando qualquer senha aleatória e até uma vazia?

Esta instalação não aceita a instrução ALTER USER.

    
por Forkbeard 10.08.2017 / 14:09

1 resposta

10

A resposta: link :

Apparently the mysql-server installation on 16.04 (or any 5.7 installation?) allows root access not through password, but through the auth_socket plugin. Running sudo mysql -u root (n.b. w/o a password) will give you mysql console whereas running the command as non-root prompts you for a password.

It would seem that changing the password doesn't make much of a difference since the auth backend doesn't even check for a password.

Para desabilitar este plugin auth_socket, no prompt do mysql faça

update mysql.user set plugin=null where user='root';
flush privileges;

Isso faz com que o MariaDB também peça uma senha para o root [Linux].

Obrigado jesse-b e derobert pela discussão profunda e suas respostas.

    
por 10.08.2017 / 15:10