Acceso a una base de datos mediante un servidor (Conexión a oracle y mysql)
1. BASE DE DATOS II
Equipo 1
Conexión a base de datos
Oracle y MySQL
Lunes10 de octubre de 2016
Chilpancingo de los Bravo, Guerrero.
2. Contenido
1. Requerimientos para montar el servidor............................................................................... 3
2. Montando el servidor. .............................................................................................................. 4
3. Agregando usuarios al servidor. ............................................................................................ 5
4. Agregando privilegios. ............................................................................................................. 6
5. Conectando con el servidor.................................................................................................... 7
Acceso a una base de datos mediante un servidor
3. 1. Requerimientos para montar el servidor
En este documento mostraremos los pasos para montar un servidor local en Windows,
aunque también podemos configurarlo de manera remota.
Para poder montarlo o trabajar de manera más cómoda es necesario verificar que la
ruta donde se instaló el MySQL Server se halla agregado al path del sistema, esto para
que la consola de comandos de Windows pueda ejecutar comandos de MySQL sin
necesidad de tener que abrir la terminal propia de MySQL.
Para hacer esto debemos ir a la ruta donde se instaló el servidor de MySQL y pegar la
ruta en el path:
Para comprobar que funciona correctamente tendremos que iniciar el servidor,
podemos hacerlo de varias maneras, desde MySQL Workbench, XAMPP, desde la
propia consola de MySQL o desde el símbolo de sistema de Windows. En este
ejemplo lo aremos desde la consola de Windows con privilegios de administrador y
el siguiente comando: net start MySQL
4. Para esto tienen que ver como se llama su servicio de MySQL en el administrador
de servicios de Windows.
Una vez que ya iniciamos el servicio, procedemos a realizar la prueba, tecleamos el
siguiente comando: mysql –u usuario –p
En donde usuario es el nombre de usuario con el cual van a ingresar y el –p para
indicar la contraseña, pero sólo lo dejamos indicado, en la siguiente línea nos pedirá
la contraseña.
Si todo está configurado correctamente nos mostrará la información sobre MySQL.
Con esto ya podemos trabajar y podemos montar nuestro servidor local.
2. Montando el servidor.
Para poner en marcha el servidor tenemos que iniciar el proceso del MySQL como
lo indicamos en los requerimientos.
Una vez que este ejecutándose el servidor conectamos todas las computadoras a
la misma red, y procedemos a obtener las ip de cada una.
Debemos tener en cuenta que todas las computadoras que se conectarán al servidor
deben estar conectadas a la misma red al que está conectada la computadora que
funcionará como servidor (en el caso del servidor local).
5. Diagrama que muestra como estara distribuida las computadoras.
Despues de conectar nos vamos a la linea de comandos en la computadora que será el
servidor y entramos al mysql como administrador que en este caso el usuario es ‘root’y la
contraseña es la que agregamos al instalar el mysql con el siguiente comando:
mysql -u root –p
Hasta este momento ya tenemos corriendo nuestro servidor de base de datos en la red.
3. Agregando usuarios a la base de datos.
Ahora pasamos a agregar usuarios que se conectarán o tendrán permisos a la base de
datos con la siguiente regla;
CREATE USER 'nombredeusuario'@'direccion-ip' IDENTIFIED BY 'contraseña';
En nuestro caso particular ejecutamos:
CREATE USER 'francisco'@'192.168.1.88' IDENTIFIED BY 'chk';
Servidor
IP: 192.168.1.84
PC 1: 192.168.1.88
6. Verificamos que efectivamente se halla creado el usuario ‘francisco’. Y para eso listamos
a todos los usuarios con esta sentencia.
select User from mysql.user;
Y efectivamente el usuario que creamos se agregó correctamente.
4. Agregando privilegios.
Después de haber creado el usuario, le concedemos los privilegios que nosotros
consideremos que de tener dicho usuario con la siguiente sentencia:
GRANT [permiso] ON [nombre de base de datos].[nombre tabla] TO
‘nombre_usuario’@’direccion_IP’;
En nuestro caso particular ejecutamos:
GRANT SELECT, INSERT, UPDATE, DELETE ON base_datos.* TO 'francisco'@'19
2.168.1.88' REQUIRE NONE WITH MAX_QUERIES_PER_HOUR 0
MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0
MAX_USER_CONNECTIONS 0;
7. Comprobamos que se hayan agregado los permisos con la siguiente sentencia;
En nuestro caso particular ejecutamos:
SHOW GRANTS FOR 'francisco'@'192.168.1.88';
Hasta este momento ya hemos creado el usuario y le hemos concedido ciertos privilegios.
5. Conectando con el servidor.
Desde la computadora que accederá al servidor en donde se encuentra la base de datos
tenemos que hacer lo siguiente:
Utilizaremos la siguiente sentencia: mysql -h nombre_servidor -u nombre_usuario –p
En nuestro caso particular ejecutamos:
Mysql –h 192.168.1.84 –u francisco –p
192.168.1.84 es IP del servidor en el cual se encuentra la base de datos.
En este momento ya ingreso a la base de datos desde la otra computadora.
Ingresamos de 192.168.1.88 a 192.168.1.84
8. Comprobamos que el usuario sólo tiene acceso a la base de datos asignada, utilizamos la
siguiente sentencia: show databases;
Y efectivamente así es.
Ahora como el administrador de base de datos creo el usuario francisco con los siguientes
privilegios:
SELECT, INSERT, UPDATE, DELETE
Es lo único que podrá realizar ese usuario. Ahora comprobaremos que realmente se esté
aplicando esos privilegios.
Obtiene las tablas de la base de datos, con la siguiente sentencia:
Primero: use base_datos;
Después: show tables;
Ahora insertamos un registro a la tabla proveedor:
Insert into proveedor (codpro, compro,status,ciudad) values (‘S6’, ‘IVAN LUIS’, ’3’,
‘CHILPANCINGO’);
9. Ahora realizamos una vista: select *from proveedor;
Como vemos nos da el permiso de realizar todas las operaciones que asigno el
administrador de base de datos.
Ahora trataremos de crear una tabla en la base de datos con la siguiente sentencia:
CREATE TABLE [esquema.] nombreDeTabla (nombreDeLaColumna1 tipoDeDatos
[DEFAULT valor] [restricciones] [, ...]);
En nuestro caso particular:
CREATE TABLE base_datos.empleado (clave INT NOT NULL , nombre VARCHAR(30
)NOT NULL , direccion INT(50) NOT NULL , telefono INT(10) NOT NULL ,PRIMARY KEY
(clave)); ERROR 1142 (42000): CREATE command denied to user
'francisco'@'DESKTOP-V0VB06P' for table 'empleado';
Como podemos observar nos niega la consulta, ya que el privilegio de crear tablas no fue
concedido por el administrador.
Eliminando permisos y usuario.
Ahora eliminaremos los permisos del usuario que creamos anteriormente con la siguiente
sentencia:
REVOKE [permiso] ON [nombre de base de datos].[nombre de tabla] FROM ‘[nombre
de usuario]’@‘localhost’;
En nuestro caso particular:
REVOKE ALL PRIVILEGES ON base_datos.* FROM ‘francisco’@’192.168.1.88’;
Con esto ya hemos eliminado los permisos o privilegios al usuario.
10. Consultamos los permisos del usuario:
Ahora el usuario no va tener ni siquiera los privilegios de usar la base de datos:
Ahora eliminaremos el usuario con la siguiente sentencia:
DROP USER ‘usuario_prueba’@‘localhost’;
En nuestro caso particular usamos la siguiente sentencia;
DROP USER ‘francisco’@’192.168.1.88’;
Para comprobar vemos los usuarios:
Y efectivamente se a eliminado el usuario.