sql >> Base de Datos >  >> RDS >> Mysql

¿Por qué se crea un GRANT USAGE la primera vez que otorgo privilegios a un usuario?

Como dijiste, en MySQL USAGE es sinónimo de "sin privilegios". Del Manual de referencia de MySQL :

USAGE es una forma de decirle a MySQL que existe una cuenta sin otorgar ningún privilegio real a esa cuenta. Simplemente tienen permiso para usar el servidor MySQL, por lo tanto USAGE . Corresponde a una fila en el `mysql`.`user` tabla sin privilegios establecidos.

El IDENTIFIED BY cláusula indica que se establece una contraseña para ese usuario. ¿Cómo sabemos que un usuario es quien dice ser? Ellos identifican ellos mismos enviando la contraseña correcta para su cuenta.

La contraseña de un usuario es uno de esos atributos de cuenta de nivel global que no está vinculado a una base de datos o tabla específica. También vive en el `mysql`.`user` mesa. Si el usuario no tiene ningún otro privilegio ON *.* , se les otorga USAGE ON *.* y su hash de contraseña se muestra allí. Esto suele ser un efecto secundario de CREATE USER declaración. Cuando se crea un usuario de esa manera, inicialmente no tiene privilegios, por lo que simplemente se le otorga USAGE .