ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

MySQL


Enviado por   •  10 de Febrero de 2014  •  Tesis  •  2.258 Palabras (10 Páginas)  •  217 Visitas

Página 1 de 10

Introducción

La técnica empleada para proteger la base de datos contra personas que no estén autorizadas para tener acceso a una parte de la base de datos o a toda. La información almacenada en la base de datos debe estar protegida contra accesos no autorizados, destrucción o alteración con fines indebidos y la introducción accidental de inconsistencia.

Según [Korth y Silberschatz]

La información almacenada en la base de datos debe estar protegida contra accesos no autorizados, destrucción o alteración con fines indebidos y la introducción accidental de inconsistencia.

Según [Elmasri / Navathe]

La técnica empleada apara proteger la base de datos contra personas que no estén autorizadas para tener acceso a una parte de la base de datos o a toda. Es la protección contra el acceso mal intencionado.

Como crear usuario s en MySQL

Puede crear cuentas MySQL de dos formas:

• Usando comandos GRANT

• Manipulando las tablas de permisos MySQL directamente

El método preferido es usar comandos GRANT , ya que son más concisos y menos propenso a errores. . GRANTestá disponible desde MySQL 3.22.11; su sintaxis se describe en Sección 13.5.1.3, “Sintaxis de GRANT y REVOKE”.

Otra opción para crear cuentas es usar uno de los diversos programas proporcionados por terceras partes que ofrecen capacidades para administradores de MySQL. phpMyAdmin es una de ellos.

Los siguientes ejemplos muestran cómo usar el programa cliente mysql para añadir nuevos usuarios. Estos ejemplos asumen que los permisos se inicializan según las pautas descritas en Sección 2.9.3, “Hacer seguras las cuentas iniciales de MySQL”. Esto significa que para realizar cambios, debe conectar al servidor MySQL como el usuario root , y la cuenta root debe tener el privilegio INSERT para la base de datos mysql y el permiso administrativo RELOAD.

En primer lugar, use el programa mysql para conectar al servidor como el usuario root :

shell> mysql --user=root mysql

Si ha asignado una contraseña a la cuenta root, necesitará la opción --password o -p para este comandomysql y también para los mostrados a continuación en esta sección.

Tras la conexión al servidor como root, puede añadir nuevas cuentas. El siguiente comando usa GRANT para inicializar nuevas cuentas:

mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost'

-> IDENTIFIED BY 'some_pass' WITH GRANT OPTION;

mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%'

-> IDENTIFIED BY 'some_pass' WITH GRANT OPTION;

mysql> GRANT RELOAD,PROCESS ON *.* TO 'admin'@'localhost';

mysql> GRANT USAGE ON *.* TO 'dummy'@'localhost';

Las cuentas creadas con estos comandos GRANT tienen las siguientes propiedades:

• Dos de las cuentas tienen un nombre de usuario de monty y una contraseña de some_pass. Ambas cuentas son cuentas de superusuario con plenos permisos para hacer cualquier cosa. Una cuenta ('monty'@'localhost') puede usarse sólo cuando se conecte desde el equipo local. La otra ('monty'@'%') puede usarse para conectarse desde cualquier otro equipo. Note que es necesario tener ambas cuentas para que monty sea capaz de conectarse desde cualquier sitio como monty. Sin la cuenta localhost, la cuenta anónima para localhostcreada por mysql_install_db tendría precedencia cuando monty conecte desde el equipo local. Como resultado,monty se trataría como un usuario anónimo. La razón para ello es que el usuario anónimo tiene un valor más específico en la columna Host que la cuenta 'monty'@'%' y por lo tanto toma precedencia en la ordenación de la tabla user. (La ordenación de la tabla user se discute en Sección 5.6.5, “Control de acceso, nivel 1: Comprobación de la conexión”.)

• Una cuenta tiene un nombre de usuario de admin y no tiene contraseña. Esta cuenta puede usarse sólo desde el equipo local. Tiene los privilegios administrativos RELOAD y PROCESS . Éstos permiten al usuario admin ejecutar los comandos mysqladmin reload, mysqladmin refresh, y mysqladmin flush-xxx , así como mysqladmin processlist . No se dan permisos para acceder a ninguna base de datos. Puede añadir tal privilegio posteriormente mediante un comando GRANT adicional.

• Una cuenta tiene un nombre de usuario de dummy sin contraseña. Esta cuenta puede usarse sólo desde el equipo local. No tiene ningún privilegio. El permiso USAGE en el comando GRANT permite crear una cuenta sin darle ningún privilegio. Tiene el efecto de inicializar todos los privilegios globales a 'N'. Se asume que se otorgarán privilegios específicos posteriormente.

Como alternativa a GRANT, puede crear la misma cuenta directamente mediante comandos INSERT y después diciendo al servidor que recargue las tablas de permisos usando FLUSH PRIVILEGES:

shell> mysql --user=root mysql

mysql> INSERT INTO user

-> VALUES('localhost','monty',PASSWORD('some_pass'),

-> 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');

mysql> INSERT INTO user

-> VALUES('%','monty',PASSWORD('some_pass'),

-> 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');

mysql> INSERT INTO user SET Host='localhost',User='admin',

-> Reload_priv='Y', Process_priv='Y';

mysql> INSERT INTO user (Host,User,Password)

-> VALUES('localhost','dummy','');

mysql> FLUSH PRIVILEGES;

La razón de usar FLUSH PRIVILEGES al crear cuantas con INSERT es decir al servidor que vuelva a leer las tablas de permisos. De otro modo, los cambios no se tienen en cuenta hasta que se reinicie el servidor. ConGRANT, FLUSH PRIVILEGES no es necesario.

La razón para usar la función PASSWORD() con INSERT es cifrar las contraseñas. El comando GRANT cifra la contraseña, así que PASSWORD() no es necesario.

El valor 'Y' activa permisos para las cuentas. Para la cuenta admin , puede emplear la sintaxis más clara extendida INSERT usando SET.

En el comando INSERT para la cuenta dummy account, sólo las columnas

...

Descargar como (para miembros actualizados)  txt (15 Kb)  
Leer 9 páginas más »
Disponible sólo en Clubensayos.com