Os usuários do MySQL são para os usuários do próprio servidor MySQL. Esses usuários devem ser reservados para uso apenas pelo administrador do servidor ou aplicativos que exigem que um usuário seja executado (forneça um usuário separado para cada aplicativo). O sistema de gerenciamento de usuários MySQL foi construído especificamente para acomodar o acesso controlado ao banco de dados executado no servidor, NÃO para ser a base de autenticação do usuário em uma aplicação web. Além disso, quaisquer adições ao banco de dados (e criações de usuários) exigirão que você tenha um usuário executando o aplicativo que tenha essas permissões no banco de dados. Embora em si não seja uma vulnerabilidade direta, se uma for encontrada em seu sistema PHP, pode tornar sua vida muito pior.
Você nunca quer que seu aplicativo seja capaz de poluir o namespace do banco de dados MySQL com bancos de dados adicionais ou (tabelas). Durante a operação de seu aplicativo, ele só poderá criar, recuperar, atualizar e excluir registros usando o Princípio do menor privilégio , o que significa que você dará ao usuário do banco de dados acesso para fazer apenas as coisas necessárias e nada mais.
No que diz respeito ao hash de senha, use bcrypt via função crypt() do PHP . Armazene isso no banco de dados em uma tabela de usuários.