TIPOS DE USUARIO Y FORMAS DE CREAR UN USUARIO CON SUS SENTENCIAS:
Enviado por bfmires • 3 de Noviembre de 2013 • 794 Palabras (4 Páginas) • 477 Visitas
TIPOS DE USUARIO Y FORMAS DE CREAR UN USUARIO CON SUS SENTENCIAS:
Los conceptos de usuarios y privilegios están íntimamente relacionados. No se pueden crear usuarios sin asignarle al mismo tiempo privilegios. De hecho, la necesidad de crear usuarios está ligada a la necesidad de limitar las acciones que tales usuarios pueden llevar a cabo.
MySQL permite definir diferentes usuarios, y además, asignar a cada uno determinados privilegios en distintos niveles o categorías de ellos.
La forma clásica, con la sentencia GRANT
Utilizando la sentencia GRANT podemos crear un usuario a la par que otorgarle uno o varios privilegios sobre los objetos de una base de datos, o la base de datos completa.
Al encontrarse una sentencia de tipo GRANT, el motor de MySQL revisa si el usuario existe previamente para el contexto que estamos asignándole permisos, y si dicho usuario no está presente en el sistema, lo crea.
Ejemplo, queremos crear el usuario adolfo para la base de datos test:
- Nos conectamos con un usuario que tenga privilegios, root, como propietario de la base de datos, los tiene.
$ Mysql -u root
Welcome to the MySQL monitor. Commands end with; or \g.
Your MySQL connection id is 17
Server version: 5.0.67 Source distribution
Nos conectamos utilizando -u para indicarle el usuario y si quisiéramos indicarle un password, deberíamos poner -p (sin añadirle la contraseña), en este caso la cuenta root, al ser unamáquina de desarrollo, está desprotegida.
- Lanzamos la sentencia GRANT, indicando los permisos que otorgamos, la base de datos y los objetos de la misma sobre los que estamos asignando privilegios, el nombre del usuario el password:
mysql> GRANT SELECT, INSERT ON test.* TO 'adolfo'@'localhost' IDENTIFIED BY 'pass_adolfo';
En este ejemplo permitimos al usuario adolfo que seleccione (SELECT) e inserte (INSERT) en todos los objetos (*) de la base de datos test, además indicamos que el contexto sea la máquina local de la base de datos (localhost), lo que impedirá que el usuario se conecte desde otras máquinas, y finalmente asignamos un password mediante IDENTIFIED BY.
Si quisiéramos que el usuario no tuviera un password, deberemos omitir la cláusula IDENTIFIED BY.
En el caso de que el modo SQL del servidor estuviera en NO_AUTO_CREATE_USER, la creación de usuarios no estaría permitida a no ser que tuvieran asignado un password no vacío.
La sentencia CREATE USER
A partir de la versión MySQL 5.0.2 existe la posibilidad de crear usuarios sin necesidad de asignarles privilegios, utilizando la sentencia CREATE USER.
Por ejemplo, para crear el usuario fernando:
$ mysql -u root
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 20
Server version: 5.0.67 Source distribution
mysql> CREATE USER 'fernando'@'localhost' IDENTIFIED BY 'fer_pass';
Query OK, 0 rows affected (0,00sec)
Al
...