Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tipos de usuario
El objetivo de la creacin de usuarios es establecer una cuenta segura y til,
que tenga los privilegios adecuados y los valores por defecto apropiados.
Para acceder a los datos en una BD, se debe tener acceso a una cuenta en esa
BD. Cada cuenta debe tener una palabra clave o password asociada.
Una cuenta en una BD puede estar ligada con una cuenta de sistema
operativo.
Los passwords son fijados cuando se crea un usuario y pueden ser alterados
por el DBA o por el usuario mismo.
La BD almacena una versin encriptada del password en una tabla del
diccionario llamada dba_users. Si la cuenta en la BD est asociada a una
cuenta del sistema operativo puede evitarse la comprobacin del password,
dndose por vlida la comprobacin de la identidad del usuario realizada por el
SO.
Un usuario tiene las siguientes caractersticas:
Un perfil de usuario, es decir las restricciones o privilegios de su cuenta. Una
cuenta MySQL se define en trminos de un nombre de usuario y el equipo o
equipos desde los que el usuario puede conectar al servidor. La cuenta tambin
tiene una contrasea (deseable). Los nombres de usuario y contraseas en
MySQL no estn relacionadas con los del sistema operativo.
Nombre de usuarios en MySQL pueden tener como mximo 16 caracteres de
longitud
Creacin de usuarios
Tres opciones.
2. CREATE USER:
A partir de la versin MySQL 5.0.2 existe la posibilidad de crear usuarios sin
necesidad de asignarles privilegios, utilizando la sentencia CREATE USER.
CREATE USER 'nombre_usuario'@'localhost' IDENTIFIED BY
'tu_contrasena';
Otros comandos.
REVOKE
Es el contrario al comando opuesto al GRANT. Se utiliza para retirar privilegios
de un usuario.
Su sintaxis es muy similar a la sintaxis de GRANT:
REVOKE privilegios [(columnas)]
ON elemento
FROM nombre_de_usuario
Privilegios
Globales.
GRANT ALL ON *.* TO 'someuser'@'somehost';
Tabla.
GRANT ALL ON mydb.mytbl TO 'someuser'@'somehost';
GRANT SELECT, INSERT ON mydb.mytbl TO 'someuser'@'somehost';
Columna
GRANT SELECT (col1), INSERT (col1,col2) ON mydb.mytbl TO
'someuser'@'somehost';
Rutina.
Los privilegios CREATE ROUTINE, ALTER ROUTINE, EXECUTE y GRANT se aplican
a rutinas almacenadas. Pueden ser concedidos en los niveles globales y de
base de datos. Adems, excepto para CREATE ROUTINE, estos privilegios
pueden ser concedidos en el nivel de rutina para rutinas individuales y se
almacenan en la tabla mysql.procs_priv.
GRANT CREATE ROUTINE ON mydb.* TO 'someuser'@'somehost';
GRANT EXECUTE ON PROCEDURE mydb.myproc TO 'someuser'@'somehost';
que por ejemplo alguno de las formas anteriores est dando algn problema
extrao.
Para ello es necesario un usuario con privilegio INSERT en la base de datos
mysql. Tambin se ha de tener mucho cuidado con esta base de datos, ya que
contiene toda la informacin de usuarios y permisos.
Ejemplo de creacin del usuario mariano usando INSERT en nuestra base de
datos. Nos conectamos con un usuario con privilegios, en este caso root, y
seleccionamos la base de datos mysql mediante la sentencia USE.
INSERT INTO user
VALUES('localhost','mariano',PASSWORD('pass_mariano'),'Y','Y',
'N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N',
'N','N','N','','','','',0,0,0,0);