Sei sulla pagina 1di 21

BASES DE DATOS

AVANZADAS
Sesión 05: administración de usuarios
Administración de usuarios
… Mysql maneja 2 capas de seguridad
† Autenticación
„ Se cerciora de q
que un usuario tenga
g las credenciales
correctas para conectarse a la base de datos
† Autorización
„ Concede el acceso de un usuario autenticado a algún
objeto dentro de la base de datos
Administración de usuarios
… Autenticación
† Certificala conexión de un usuario desde una
computadora en concreto
† Tiene 2 componentes:
„ Nombre de la cuenta
„ Contraseña
Administración de usuarios
… Nombre de la cuenta
† El formato general es:
„ ‘nombre_usuario’@’nombre_host’
@
† Mysql almacena el nombre de la cuenta en su tabla de
acceso dentro de la base de datos del sistema
separando el nombre del usuario y el nombre de host
en diferentes columnas
Administración de usuarios
… Nombre de la cuenta
† El nombre del host puede ser
„ El nombre de una computadora en concreto
„ ‘usuario’@’lab01’
usuario @ lab01
„ La dirección ip o máscara de red de una computadora o red en
concreto
„ ‘usuario’@’192
usuario @ 192.168.1.100
168 1 100’
„ ‘usuario’@’192.168.1.0/255.255.255.0’
„ El nombre de dominio de una computadora
„ ‘usuario’@’midominio
usuario @ midominio.com
com’
„ Un carácter comodín
„ ‘usuario’@’%’
Administración de usuarios
… Contraseña
† La contraseña puede estar vacía
† Si no está vacía, la contraseña se almacena de manera
encriptada usando la función PASSWORD()

… Ejecutar la siguiente consulta

Select password(‘mipassword’);
Administración de usuarios
… Si la combinacion de nombre de usuario, host y
contraseña encriptada existen dentro de la tabla
de usuarios de mysql,
y q , la conexión se considera
válida
… Podemos especificar
p diferentes contraseñas para
p un
mismo usuario que se conecte desde distintos hosts
… Podemos especificar tambien diferentes privilegios
a cada uno
Administración de usuarios

… Autorización
† Una vez autenticada una conexión, se procede a
examinar los privilegios de una cuenta
Administración de usuarios
… Estos privilegios incluyen
† Acceso a objetos dentro de la base de datos
„ Bases de datos
„ Tablas dentro de una base de datos
„ Campos dentro de una tabla

† Acciones a realizar sobre estos objetos


„ Insertar
„ Consultar
C lt
„ Actualizar
„ Borrar
Administración de usuarios
… Para ver la lista de privilegios completa, consultar:
† http://dev.mysql.com/doc/refman/5.5/en/privileges-
provided.html
† Los privilegios se almacenan dentro de la base de
datos del sistema, en la tabla de grants
Administración de usuarios
… Las principales tablas de privilegios son como siguen:
† User
„ Contiene las cuentas de usuario
† Db
„ Contiene privilegios a nivel de base de datos
† Tables_priv
„ Contiene privilegios a nivel tabla
† Columns_priv
„ Contiene privilegios a nivel campo
… Para la lista completa,
p , consultar:
http://dev.mysql.com/doc/refman/5.5/en/grant-table-
structure.html
C
Creación
ió dde usuarios
i
Creación de usuarios

… Considerar lo siguiente:
† Los nombres de usuarios deben ser de hasta 16
caracteres
† Solo usar caracteres ASCII
Creación de usuarios
… Añadir un usuario
† CREATE USER ‘usuario’@’host’ IDENTIFIED BY
‘password’;

† CREATE USER ‘juan’@’192.168.1.110’ IDENTIFIED BY


‘qwerty123’;

… Crear un usuario para un compañero que se


encuentre en otra computadora
… Revisar la tabla de usuarios de mysql
Creación de usuarios
… Eliminar un usuario
† DROP USER ‘usuario’@’host’

† DROP USER ‘j
‘juan’@’192.168.1.110’
’@’192 168 1 110’

… Eliminar la cuenta que acaban de crear


… Revisar la tabla de usuarios de mysql
Creación de usuarios
… Asignar
g nueva contraseña a un usuario
† SET PASSWORD FOR ‘usuario’@’host’ =
PASSWORD(‘password’);

† SET PASSWORD FOR ‘juan’@’192.168.1.110’ =


PASSWORD(‘asdfg890’);

… Crear un nuevo usuario


… Revisar la tabla de usuarios
… Asignar nueva contraseña a ese usuario
… Revisar nuevamente la tabla de usuarios
P i il i
Privilegios
Privilegios
g
… Hay varios niveles de privilegios:
† Globales

† Por base de datos


† Por tabla

† Por campo
p
Privilegios
g
… Otorgar privilegio global
† GRANT ALL ON *.* TO ‘usuario’@’host’;
† GRANT SELECT, INSERT ON *.* to ‘usuario’@’host’;

… Otorgar privilegio a nivel base de datos


† GRANT ALL ON bd1.
bd1 * TO ‘usuario’@’host’;
usuario @ host ;
† GRANT SELECT, INSERT ON bd1.* to ‘usuario’@’host’;
Privilegios
g
… Otorgar privilegios a nivel de tabla
† GRANT ALL ON bd1.tabla1 TO ‘user’@’host’;
† GRANT SELECT, INSERT ON bd1.tabla1 TO ‘user’@’host’;

… Otorgar privilegios a nivel columna


† GRANT SELECT (col1), INSERT (col1, col2) ON
bd1.tabla1 TO ‘user’@’host’;
Privilegios
g
… Revocar privilegios
† REVOKE ALL ON *.* FROM ‘usuario’@’host’;
† REVOKE SELECT, INSERT ON *.* FROM
‘usuario’@’host’;
† REVOKE ALL ON bd1.* FROM ‘usuario’@’host’;
† REVOKE SELECT, INSERT ON bd1.* FROM
‘usuario’@’host’;
† REVOKE ALL ON bd1.tabla1 FROM
‘user’@’host’;
† REVOKE SELECT, INSERT ON bd1.tabla1 FROM

‘user’@’host’;
’@’h t’
† REVOKE SELECT (col1), INSERT (col1, col2)
ON bd1.tabla1 FROM ‘user’@’host’;

Potrebbero piacerti anche