Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Por que um GRANT USAGE é criado na primeira vez que concedo privilégios a um usuário?


Como você disse, no MySQL USAGE é sinônimo de "sem privilégios". Do Manual de referência do MySQL :

USAGE é uma maneira de dizer ao MySQL que existe uma conta sem conferir nenhum privilégio real a essa conta. Eles apenas têm permissão para usar o servidor MySQL, portanto USAGE . Corresponde a uma linha no `mysql`.`user` tabela sem privilégios definidos.

O IDENTIFIED BY cláusula indica que uma senha está definida para esse usuário. Como sabemos que um usuário é quem eles dizem ser? Eles identificam enviando a senha correta para sua conta.

A senha de um usuário é um desses atributos de conta de nível global que não está vinculado a um banco de dados ou tabela específica. Ele também vive no `mysql`.`user` tabela. Se o usuário não tiver outros privilégios ON *.* , eles recebem USAGE ON *.* e seu hash de senha é exibido lá. Isso geralmente é um efeito colateral de um CREATE USER demonstração. Quando um usuário é criado dessa forma, ele inicialmente não tem privilégios, então ele recebe apenas USAGE .