Asunto: Crear usuario y dar permisos desde línea de comandos MySQL
Tengo un servidor con MySQL Server 5.1, lo tengo en un equipo con el sistema operativo GNU/Linux Ubuntu Server, no tiene modo gráfico. Tengo pocos conocimientos de Linux y de MySQL ¿se puede crear un usuario de MySQL desde la línea de comandos de Linux? necesito crear un usuario para una aplicación de facturación que sólo tenga acceso a la base de datos "facturacion" y que sólo pueda hacer INSERT y SELECT (nada más, ni UPDATE, ni CREATE, ni DROP, ni DELETE) y sólo en la base de datos "facturacion" ¿es posible hacer esto desde la línea de comandos de Linux?
Publicado:
Vie May 20, 2011 9:53 pm
alonsojpd Administrador/Moderador
Registrado: Sep 16, 2003 Mensajes: 2687
Asunto: Re: Crear usuario y dar permisos desde línea de comandos MyS
Anuncios
varios escribió:
Tengo un servidor con MySQL Server 5.1, lo tengo en un equipo con el sistema operativo GNU/Linux Ubuntu Server, no tiene modo gráfico. Tengo pocos conocimientos de Linux y de MySQL ¿se puede crear un usuario de MySQL desde la línea de comandos de Linux? necesito crear un usuario para una aplicación de facturación que sólo tenga acceso a la base de datos "facturacion" y que sólo pueda hacer INSERT y SELECT (nada más, ni UPDATE, ni CREATE, ni DROP, ni DELETE) y sólo en la base de datos "facturacion" ¿es posible hacer esto desde la línea de comandos de Linux?
Sí es posible, si sabes la contraseña para el usuario "root" de MySQL o cualquier otro que tengas con permisos suficientes para crear registros en la tabla "user" de la base de datos "mysql".
Tienes que hacer lo siguiente: desde la línea de comandos shell de Linux, ejecuta el siguiente comando:
Código:
mysql --user="root" --password="contraseña"
Nota: si no te funciona el comando "mysql" tal vez debas iniciar sesión con el usuario "mysql" de Linux que suele ser creado en la instalación de MySQL Server. Si aún así no te funciona el comando "mysql" tendrás que acceder a la carpeta donde se encuentre para ejecutarlo.
Si todo es correcto accederás a la aplicación MySQL Monitor de la línea de comandos. Para crear un usuario de MySQL ejecuta el siguiente comando:
Código:
create user 'nombre_usuario'@'localhost' identified by 'contraseña';
Con la orden anterior se creará el usuario "nombre_usuario", con permisos de acceso desde el equipo local con MySQL Server y con la contraseña "contraseña".
Si quieres comprobar si se ha creado el usuario correctamente puedes ejecutar la siguiente sentencia SQL:
Código:
select user from mysql.user;
La sentencia anterior te devolverá todos los registros de la tabla "user" de la base de datos "mysql" que contiene los usuarios de MySQL Server, entre ellos debe aparecer el que acabas de crear.
A continuación, para establecer los permisos que quieres, ejecuta el siguiente comando:
Código:
grant select, insert on facturacion.* to 'nombre_usuario'@'localhost';
Para verificar los permisos que tiene el usuario de MySQL Server, puedes ejecutar el comando:
Código:
show grants for 'nombre_usuario'@'localhost';
Con esto habrás creado el usuario sólo con permisos de ejecutar consultas SQL de selección (SELECT) e inserción (INSERT) en todas las tablas de la base de datos "facturacion".
Ultima edición por alonsojpd el Jue Mar 14, 2013 10:17 pm, editado 1 vez
Publicado:
Vie May 20, 2011 10:08 pm
roberthdz12 Usuario
Registrado: Nov 21, 2012 Mensajes: 1
Asunto: ayuda???
Hola, solo quisiera saber si puedo usar eso mismo en mi base de datos en windows, me explico quiero crear una tabla de trabajadores donde estos se registren para entonces tener acceso a otras tablas en las que podrian editar los registros y insertar datos nuevos, solo quiero dar a un usuario en especifico los permisos para lo que seria el cambio de contraseña y el nivel de acceso de los otros usuarios, quisiera hacer esto atraves de formularios, desde ahora gracias, espero respuesta de verdad necesito hacer esto que explico, saludos....
Publicado:
Mie Nov 21, 2012 1:42 pm
alonsojpd Administrador/Moderador
Registrado: Sep 16, 2003 Mensajes: 2687
Asunto: Re: ayuda???
Anuncios
roberthdz12 escribió:
Hola, solo quisiera saber si puedo usar eso mismo en mi base de datos en windows, me explico quiero crear una tabla de trabajadores donde estos se registren para entonces tener acceso a otras tablas en las que podrian editar los registros y insertar datos nuevos, solo quiero dar a un usuario en especifico los permisos para lo que seria el cambio de contraseña y el nivel de acceso de los otros usuarios, quisiera hacer esto atraves de formularios, desde ahora gracias, espero respuesta de verdad necesito hacer esto que explico, saludos....
El método que decidas emplear dependerá de los requisitos y necesidades de tu aplicación y los datos que almacenes (si son más o menos sensibles con mayor o menor nivel de seguridad.
Lo más cómodo es establecer una seguridad básica a nivel de MySQL (como indicamos en este post), por ejemplo, si tienes una aplicación web que explote estos datos para ella se crearía un usuario con permisos muy limitados desde MySQL pues el acceso web es propenso a ataques y tus datos pueden quedar expuestos. En cambio, si vas a usar una aplicación de escritorio solo accesible desde tu red local tal vez te resulte más cómodo y funcional establecer los permisos desde la propia aplicación.
Un ejemplo, si tienes una aplicación de escritorio de facturación y control de stock de almacén que es multiusuario, podrías crear un tabla en MySQL donde almacenarías los menúes o secciones de tu aplicación, llamada por ejemplo "menu" con los campos:
codigo
nombremenu
En una segunda tabla almacenarías los permisos para cada usuario para cada menú, por ejemplo llamada menuusuario, con los campos:
De esta forma desde un formulario donde pides el usuario, el menú (sección) y los check correspondientes para cada permiso. Insertarías el registro correspondiente en la tabla "menuusuario" y luego en cada formulario de cada menú/sección tendrías que comprobar si el usuario que ha iniciado sesión tiene permisos para la acción que solicite realizar.
Esto que te comentamos suele ser más ágil y funcional que establecer los permisos a nivel de MySQL, si bien el método a emplear debe ser escogido por el desarrollador en función de varios criterios, como el de la criticidad de los datos guardados, nivel de exposición (si van a ser accesibles desde Internet), etc.
Puede publicar nuevos temas en este foro No puede responder a temas en este foro No puede editar sus mensajes en este foro No puede borrar sus mensajes en este foro No puede votar en encuestas en este foro
Visita nuestro nuevo sitio web con programas y contenidos actualizados: Proyecto A