Conexión remota a base de datos con Oracle y MySQL
1. UNIVERSIDAD AUTÓNOMA DE GUERRERO
FACULTAD DE INGENIERÍA
INGENIERO EN COMPUTACIÓN
Conexión remota a Oracle
Database y MySQL
FACILITADOR: Valentín Álvarez Hilario
UNIDAD DE APRENDIZAJE: Bases de Datos II
GRUPO: 501
EQUIPO 1
2. Descripción
En el presente manual se mostrará cómo equipos cliente se conectan al servidor de la base
de datos y realizan algunas acciones con diferentes usuarios. Se estableció la computadora
de uno de los integrantes como servidor, en donde lo único que se hizo fue crear el espacio
de tablas, crear los usuarios y asignarles permisos diferentes. El servidor tuvo la dirección
IP estática 192.168.2.1, y los clientes empezaron a partir de la dirección 192.168.2.2.
Todos los equipos fueron puestos en red a través de un switch físico. A diferencia de
MySQL, Oracle Database parece estar configurado para recibir conexiones remotas.
Configuración general
La mayoría de los integrantes creamos una máquina virtual para trabajar, con el sistema
operativo Windows 7 Ultimate de 64 bits. Por lo que se hizo una configuración similar, y la
máquina servidor no fue la excepción.
Se abrió el Panel de control y después se hizo clic en Centro de redes y recursos
compartidos.
Después clic en Cambiar configuración del adaptador.
3. Clic derecho en el adaptador de la interfaz Ethernet y luego en Propiedades.
Se seleccionó la opción Protocolo de Internet versión 4 (TCP/IPv4) y luego en Propiedades.
4. Y se estableció una dirección IP estática diferente para cada cliente, pero con la misma
Máscara de subred.
5. Administración en el servidor
En el servidor fueron creados los usuarios y les fueron dados sus permisos
correspondientes.
6.
7. Creación de la tabla
Se conectó con el usuario que tuvo permiso para crear tablas y se creó una tabla para la
prueba.
La sintaxis para la conexión es: connect usuario/contraseña@direcciónIPdelServidor
8. Inserción de datos
Se conectó con el usuario que tuvo el permiso exclusivamente para insertar datos, después
se desconectó y se conectó con el usuario que tuvo permiso exclusivamente para consultar.
9. Actualización de datos
Se conectó con el usuario que tuvo el permiso exclusivamente para actualizar datos,
después se desconectó y se conectó con el usuario que tuvo permiso exclusivamente para
consultar.
Eliminación de datos
Se conectó con el usuario que tuvo el permiso exclusivamente para borrar datos, después
se desconectó y se conectó con el usuario que tuvo permiso exclusivamente para consultar.
11. MySQL
Contenido
1. Requerimientos para montar el servidor.............................................................................12
2. Montando el servidor..............................................................................................................13
3. Agregando usuarios al servidor............................................................................................15
4. Agregando privilegios.............................................................................................................15
5. Conectando con el servidor. .................................................................................................16
12. Acceso a una base de datos mediante un servidor
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
13. 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).
14. 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.
Servidor
IP: 192.168.1.84
PC 1: 192.168.1.88
15. 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';
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:
16. 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;
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.
17. 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
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;
18. Ahora insertamos un registro a la tabla proveedor:
Insert into proveedor (codpro, compro,status,ciudad) values (‘S6’, ‘IVAN LUIS’, ’3’,
‘CHILPANCINGO’);
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
19. (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.
Consultamos los permisos del usuario:
Ahora el usuario no va tener ni siquiera los privilegios de usar la base de datos:
20. 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.