|
Lección 34 ª |
|
|
La seguridad, uno de los mayores retos del siglo XXI, en todos los aspectos, el social, el económico (ay, también el económico) y claro está, también el informático. MySQL proporciona una gran cantidad de elementos de seguridad, mismos que, claro está, están a nuestra total disposición. Una de estas bendiciones de seguridad son las garantías de uso para diferentes usuarios. Podemos definir varios usuarios para nuestras bases de datos, y a todos y cada uno podemos garantizarles, negarles o revocarles ciertos privilegios para el manejo de nuestras bases de datos. Una sana recomendación es, precisamente, permitir
el “abuso” total para con nuestras bases, única y exclusivamente
al usuario root (que vendría a ser algo así como el superadministrador). La Instrucción GRANT es utilizada una vez que iniciamos una sesión MySQL con el usuario ROOT, es decir, cuando el comando del sistema escribimos lo siguiente: mysql –u root Una vez dentro de la sesión con el usuario raíz o superadministrador, debemos utilizar la sentencia GRANT de la siguiente manera: GRANT privilegio_a_otorgar ON nombre_base_de_datos TO usuario@localhost IDENTIFIED BY password Posteriormente podemos probar estos privilegios entrando
a otra sesión de MySQL con el usuario al cual le hemos permitido
los privilegios e intentar hacer algo que no le hemos permitido a dicho
usuario. GRANT SELECT ON prueba.* TO usuario1@localhost INDENTIFIED BY ‘dejameentrar’; Para probar esto debemos salirnos de la sesión ROOT simplemente digitando EXIT en la línea de comandos de MySQL y entrando luego al usuario específico digitando lo siguiente: mysql –u usuario1 –p De esta manera hemos iniciado una sesión con el usuario USUARIO1. La sentencia GRANT anterior le dice a MySQL: Garantice el privilegio de SELECCIONAR EN prueba EN usuario@localhost IDENTIDICADO POR ‘dejameentrar’; La directiva –p que hemos especificado al entrar en la sesión usuario1 hace que MySQL nos pida una contraseña antes de entrar, recordemos que la contraseña especificada fue ‘dejameentrar’, así que escribimos precisamente dejameentrar al momento de entrar a la sesión. Una vez dentro, al estar en la línea de comandos de MySQL (mysql>) podemos intentar, por ejemplo, algo como esto: DELETE FROM prueba; Lo que MySQL nos dirá es que hay un error, un error 1142 para ser más exactos, cada vez que intentemos hacer algo para lo que nuestro usuario no tiene usuario (recuerden por favor que usuario1 sólo tiene permiso para hacer consultas (SELECT). Finalmente, podemos solicitarle a MySQL los privilegios de un usuario específico por medio de la sentencia SHOW GRANTS, tal y como lo muestra la imagen:
Como verán, esta es una herramienta poderosa en
cuanto a la seguridad de nuestras bases de datos se refiere, sin embargo,
hay otras tantas cosas que ver. Pero eso será más adelante.
Hasta Pronto
|