Copyright © 2005-2024 LinuxTotal.com.mx
Se concede permiso para copiar, distribuir y/o modificar este documento siempre y cuando se cite al autor y la fuente de linuxtotal.com.mx y según los términos de la GNU Free Documentation License, Versión 1.2 o cualquiera posterior publicada por la Free Software Foundation.
Lo primero que debes hacer una vez que instalas un servidor de base de datos MySQL es establecer la contraseña del usuario administrador o root, de hecho no tiene que llamarse root, puedes ponerle el nombre que desees. Es muy sencillo, pero hay que entender los alcances de lo que hacemos, asi que veámoslo paso a paso. Una vez arrancado el servicio de mysql (aqui para un tutorial sobre servicios), indicamos en el shell que inicie el monitor mysql:
#> mysql Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 3 to server version: 5.0.26 Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql>
Lo primero que notamos es que al iniciar el monitor de mysql o la línea de comandos de MySQL es que no necesitamos de una contraseña, malo, muy malo, porque obviamente cualquiera puede entrar y manipular las bases de datos que tengamos. Asi que vamos a establecer al usuario 'root' como el usuario administrador global de todas las bases de datos, aunque todavía no se hayan creado, y tendrá todos los privilegios sobre estas, asi como la capacidad de otorgar (grant) privilegios a otros usuarios:
mysql> grant all privileges on *.* to root@'localhost' identified by 'sesamo' with grant option; Query OK, 0 rows affected (0.00 sec)
Una vez creado el usuario 'root' y si nos salimos del monitor con el comando
exit
, veamos que sucede si deseamos volver a ingresar:
#> mysql ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) #>
Ya no es posible ingresar porque una vez creado un usuario con la opción 'identified by' siempre se requerira que se indique la contraseña para ingresar al monitor, incluso no solo al monitor sino también a herramientas gráficas de administración de MySQL, como phpmyadmin y mysql administrator.
Entonces, ahora debemos indicar la opción '-u' de usuario y '-p' de password para poder ingresar al monitor:
#> mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 6 to server version: 5.0.26 Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql>
También es posible indicar la contraseña inmediatamente después de la '-p' sin espacio:
#> mysql -u root -psesamo
Aunque es obvio que es bastante inseguro este método.
Para terminar con este tip, veamos ahora un ejemplo de como deberíamos crear un usuario que se dedica a capturar pólizas de un sistema de contabilidad, donde queremos que pueda seleccionar, insertar o actualizar pólizas pero no borrarlas ni nada más, muy restringido, además solo puede ingresar desde su PC:
#> mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 6 to server version: 5.0.26 Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | linuxtotal | | mysql | | contabilidad | +--------------------+ 4 rows in set (0.03 sec) mysql> mysql>use contabilidad; Database changed mysql> show tables; +---------------+ | Tables_in_ca | +---------------+ | catalogos | | cuentas | | polizas | | saldos | +---------------+ 4 rows in set (0.00 sec) mysql> mysql> grant select, insert, update on contabilidad.polizas to capturista@'10.0.0.23' identified by 'secreto'; Query OK, 0 rows affected (0.07 sec) mysql>
Como puede observarse, existen varias bases de datos, una de ellas 'contabilidad' y dentro de esta
existen varias tablas. Con el comando grant
estamos solo concediendo
tres permisos muy específicos de seleccionar, insertar y actualizar registros solo en la tabla
'polizas' de la base de datos 'contabilidad' al usuario 'capturista' cuando se conecte desde
el equipo '10.0.0.23' y se identifique con la contraseña 'secreto'. Nótese que no se le concedió la
opción with grant option
, asi que no podrá este usuario a la vez otorgar
ningún privilegio a ningún usuario. Y todo se hizo como el usuario 'root' que es al que inicialmente
le concedimos privilegios completos sobre todas las bases de datos y sus tablas.
Si encuentras útil la información que proveé LinuxTotal, considera realizar un donativo que estimule a seguir proporcionando contenido de calidad y utilidad. Gracias.
Dona a través de paypal::
O a través de bitcoins:
Imaginémonos a la empresa "Pato, S.A." que ofrece a sus empleados y clientes el sitio http://www.pato.com/consulta, donde mediant....
La demanda civil entablada por la empresa SCO contra la gigante IBM causó revuelo entre la comunidad Linux y Open Source cuando e....
Ya son varios los lectores que me preguntan que CMS (content management system) utilizo para este sitio. Ejemplos de CMS son mambo....
Administración básica de redes. Conoce distintos métodos y herramientas para escanear, probar o buscar por puertos abiertos des....
Una tarea administrativa algo común, es eventualmente tener que añadir un nuevo disco duro (IDE) al o a los que ya se tienen, de....
Sistemas basados en GNU/Linux (Al igual que sus parientes basados en Unix como BSD o los de Macinstosh) conservan la tradición de....
De acuerdo a la definición en wikipedia un rootkit es una herramienta, o un grupo de ellas que tiene como finalidad esconderse a ....
Observa la imagen siguiente, que corresponde a uno de los sitios de descargas de MySQL y notarás que todos los archivos que puede....
Hay ocasiones que cuando busco un archivo dentro del listado de un directorio con varios archivos, usando ls, deseo ver solamente ....
La gente considera encriptar algunos o todos sus archivos por múltiples razones. Ya sea que no puedan depender en seguridad físi....