Mostrando entradas con la etiqueta alta usuarios. Mostrar todas las entradas
Mostrando entradas con la etiqueta alta usuarios. Mostrar todas las entradas

lunes, 2 de mayo de 2016

Alta de usuarios en MySQL (|II)

Esta es una actualización de mi chuleta, y para el que lo necesite



A estas alturas ya sabemos que podemos definir los permisos que un usuario tiene a una base de datos (o tabla, o donde sea) usando GRANT; hay muchos tipos de privilegios pero los los más típicos que yo me encuentro son estos
  • SELECT: acceso sólo de lectura
  • INSERT: se permiten hacer inserts en la(s) tabla(s) seleccionada(s)
  • UPDATE: se permiten hacer updates en la(s) tabla(s) seleccionada(s)
  • DELETE: se permiten hacer delete de las filas que hay en la(s) tabla(s) seleccionada(s)
  • USAGE: no se permite nada, es un sinónimo para "sin privilegios".
  • ALL PRIVILEGES: todos los privilegios (no sólo incluye estos cuatro; aquí podéis encontrar un listado más completo)
Y para qué todo esto? Pues porque quiero actualizar ms notas

Esto es suficiente para dar de alta un nuevo usuario

 GRANT xxxxx on database.table to 'user'@'host' identified by 'password';

donde xxxxx son los permisos de los que os hablaba arriba.
Si además, queremos limitar el número de conexiones de ese usuario, añadimos al final la limitación, y quedaría de esta manera

 GRANT xxxxx ON database.table TO 'user'@'host' IDENTIFIED BY 'password' WITH MAX_USER_CONNECTIONS #;

El cambio de contraseña para un usuario, queda así

SET PASSWORD FOR 'user'@'host' = PASSWORD('yyyyyyyyyyyy');

Y qué hago si quiero saber qué privilegios tiene un usario, sobre qué y cómo esan definidos? Pues con este comando, que últimamente estoy utilizando bastante

SHOW GRANT FOR 'user'@'host';

que nos devolverá todos los permisos de ese usuario concreto; si  no le pasas el usuario (sólo "SHOW GRANT") te devolverá los privilegios del usuario con el que estás conectado.

miércoles, 26 de febrero de 2014

Alta de usuarios en MySQL (II)

Hola de nuevo!

Esta entrada está dirigida, principalmente, a mí. Esta es mi chuleta desde hace tiempo para dar de alta bases de datos MySQL y usuarios con permisos sobre esa base de datos. Sé que publiqué una entrada hace tiempo, pero dejé de utilizar ese mecanismo hace también mucho tiempo. El caso es que siempre se me olvida algún paso, así que lo dejaré aquí, bien definido por si alguien más quiere utilizarlo, y que me sirva para no tener que andar buscando entre documentos durante media hora antes de darme cuenta que me ha faltado una comilla simple o un punto y coma.

create user USUARIO;     # Creamos el usuario USUARIO
create schema BBDD;     # Creamos la base de datos BBDD
grant all on BBDD.* to 'USUARIO'@'localhost';     # Damos permisos 'all' para USUARIO desde localhost
set password for 'USUARIO'@'localhost' = password('PWD');     # Asignamos la contraseña PWD a USUARIO cuando accede desde localhost
grant all on BBDD.* to 'USUARIO'@'%';    # Damos permisos 'all' para USUARIO desde fuera
set password for 'USUARIO'@'%' = password('PWD');    # Asignamos la contraseña PWD a USUARIO cuando accede desde fuera
flush privileges;    # Cargamos los  cambios que hemos hecho

viernes, 9 de mayo de 2008

Alta de usuario en SQL Server (Enterprise Manager 2005)

Este post va dedicado a mí: esta mañana nos hemos pasado una hora para una tontería tan tonta que casi me da vergüenza aceptarlo. Pero bueno, como de los errores se aprende, no me arrepiento.

A ver, abrimos el SQL Enterprise Managerm en mi caso

Inicio --> Programas --> Microsoft SQL Server --> Administrador Coporativo

y desplegamos hasta localizar la carpeta Seguridad. La desplegamos también y nos vamos a Inicios de Sesión y (botón derecho -->) Nuevo Inicio de Sesión.

El usuario que vamos a crear será sólo para SQL, nada que ver con la autentificación Windows, así que en Nombre ponemos el nombre que hayamos pensado y habilitamos la opción "Autentificación de SQL Server" y escribimos la contraseña que queramos. En Base de Datos (en el apartado Predeterminado) seleccionamos la base de datos (la principal si son más de una) para la que este usuario tendrá permisos (si no está porque aún no la has dado de alta, te das cuenta que has empezado la casa por el tejado).

Buscamos la pestaña Acceso a Base de Datos y seleccionamos todas las BBDD a las que tenga que tener acceso, y el nivel de acceso. Cuando marcamos una BDD, en el recuadro de abajo aparecen las diferentes funciones que puede hacer el usuario. Por defecto, viene marcada public, pero si queremos que el usuario pueda administrarla marcaremos bd_owner.

[Aquí había estado mi fallo: había marcado una opción que no tocaba]

Salvaremos, saldremos y ya estará el usuario creado. Si queréis ver si este usuario tiene permisos realmente, abrid el Analizador de Consultas, logaros con ese usuario y haced alguna consulta contra alguna de las BDD a las que tenga acceso, del estilo
select * from tabla

y para que se ejecute, clickad en el play que hay arriba. Si no devuelve ningún error, está todo bien. Si no, repasad vuestros pasos.

Para dar de alta una base de datos: Fácil, desde el propio Enterprise Manager, váis a Bases de Datos y (botón derecho -->) Nueva Base de Datos. Se abre una ventana, donde tendréis que poner el nombre de la nueva base de datos. Y (no es necesario) también podéis indicarle dónde queréis que el sistema guarde los archivos de la base de datos y el registro de transacciones. El primero son los datos de la base de datos, y el segundo un registro de los movimientos que se hacen en esa base de datos. A veces va bien poder elegir dónde los guarda, sobre todo cuando en la unidad C: (donde se guarda normalmente por defecto) no hay mucho espacio, ya que esto ocupa mucho espacio.

Una vez creada la base de datos, si queremos importar algún backup, nos pondremos encima y (botón derecho -->) Todas las tareas --> Restaurar Base de Datos. Si de la copia de seguridad tenemos un archivo .BAK (lo más normal si es un backup del propio SQL), seleccionaremos Desde Dispositivo, y en Dispositivo seleccionaremos el archivo .BAK que queramos restaurar. Y aceptar, y él sólo restaura. Si veis que os da algún error, es probable (si el backup era de otra máquina, con otra configuración) que vosotros no tengáis la misma estructura, y, por ejemplo, que en lugar de guardar los archivos en la D: como se hacía en la otra máquina, los guardéis en la C. Sólo tendréis que cambiarlo en la pestaña Opciones. Simplemente habrá que tener en cuenta estos pequeños detalles y no habrá problema para restaurar.

Ale, cómo me he enrollado. Espero que quede claro. Cualquier duda, dejadme un comentario!!!!

lunes, 18 de febrero de 2008

Alta de usuarios en MySQL

La verdad es que esto no tiene mucha complicación, pero en su momento me acuerdo que me costó un poco encontrar cómo hacerlo de manera clara, sencilla y sin muchas tonterías. Por eso me parece una buena idea postearlo aquí.

Poned atención, que va a ser rápido e indoloro
Tuxxxy:~$ mysql -u root mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 5.0.38-Ubuntu_0ubuntu1.2-log Ubuntu 7.04 distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>

Con esto lo que hacéis es acceder. Es probable que necesitéis poner la contraseña de vuestro usuario root (en este caso no tiene); si tenéis password, deberéis ejecutar

Tuxxxy:~$ mysql -u root-p mysql
Welcome to the MySQL monitor. Commands end with ; or \g.

Bueno, una vez estoy usando la tabla MySQL, doy de alta los usuarios con

GRANT ALL PRIVILEGES on database to 'user'@'localhost' [ 'user'@'IP_server' ] identified by 'password' with grant option;

Después, la tabla Db enlaza usuarios y las bases de datos correspondientes. Lo que tenemos que hacer es añadir el enlace entre el usuario que tenemos y la base (o bases) de datos que queremos que vea. Es simplemente añadir la entrada correspondiente en la tabla Bd, así que yo, para no liarme, lo hago a mano. Para MySQL 4.x lo hago así

insert into db values ('%','database','user','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
insert into db values ('localhost','database','user','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');

Para MySQL 5.x hay más campos, así que tendréis que mirar cómo están. Haciendo

select * from db;


ya podéis ver todos los datos que hay en la tabla, y ver qué estructura tiene y dar de alta una nueva fila siguiendo cómo está hecho.