Como sabeis y por seguridad es recomendable que cada aplicacion que tengais sobre php contra una BD de MySQL cada tabla deberia tener su propio usuario y contraseña ignorando por completo el uso de root. Bien pues hay aplicaciones donde los usuarios necesitan crear sus propias tablas y usuarios dentro de las Base de Datos, si creamos un usuario y le asignamos todos los permisos aun sera insuficiente no podra crear usuarios y recibiremos algo como.

 

 

mysql> create user prueba@’localhost’ identified by ‘contraseña’;
ERROR 1227 (42000): Access denied; you need the CREATE USER privilege for this operation

 

Bien necesitamos asignarle a nuestro usuario que por supuesto no es root los privileges de CREATE USER

 

Ahora si debemos hacernos root y verificar nuestros permisos

 

mysql> show grants for usuarioprueba;

 

+——————————————————————————–+
| Grants for usuarioprueba@%                                                          |
+——————————————————————————–+
| GRANT USAGE ON *.* TO ‘usuarioprueba’@’%’ IDENTIFIED BY PASSWORD ‘564654654654646’ |
| GRANT ALL PRIVILEGES ON `BD`.* TO ‘usuarioprueba’@’%’ WITH GRANT OPTION      |
+——————————————————————————–+
2 rows in set (0.00 sec)

 

Bien pues segun esto tenemos posibilidad para hacer uso de la base dedatos y realizar operaciones sobre ella pero no podemos crear aun usuarios ya que los permisos

FILE, PROCESS, RELOAD, REPLICATION CLIENT, REPLICATION SLAVE, SHOW DATABASES, SHUTDOWN, SUPER, and CREATE USER son permisos que se establecen sobre la BD global es decir si intentais hacerlos sobre la BD en cuestion dara el siguiente error.

 

 

GRANT CREATE USER  ON `BD`.* TO ‘usuarioprueba’@’%’ IDENTIFIED BY ‘5465465465446454’ WITH GRANT OPTION;
ERROR 1221 (HY000): Incorrect usage of DB GRANT and GLOBAL PRIVILEGES

 

 

Debemos ejecutarlo de la siguiente forma.

 

GRANT CREATE USER  ON *.* TO ‘usuarioprueba’@’localhost’;
Query OK, 0 rows affected (0.00 sec)

 

Si ahora vemos nuestros permisos tendremos lo siguiente

mysql> show grants for usuarioprueba@’localhost’;
+———————————————————————————————-+
| Grants for usuarioprueba@localhost                                                                |
+———————————————————————————————-+
| GRANT CREATE USER ON *.* TO ‘usuarioprueba’@’localhost’ IDENTIFIED BY PASSWORD ‘54544646546546546’ |
+———————————————————————————————-+
1 row in set (0.00 sec)

 

 

 

Si quisieramos qutiar los permisos pues con el comando

REVOKE ALL PRIVILEGES, GRANT OPTION FROM usuarioprueba@’localhost’;

 

Lo dejaremos muy limpito :=)

Por admin

Deja una respuesta

Ads Blocker Image Powered by Code Help Pro

Ads Blocker Detected!!!

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.

Powered By
Best Wordpress Adblock Detecting Plugin | CHP Adblock