Sunteți pe pagina 1din 6

SENTENCIAS EN SQL

Describe el uso de cinco sentencias SQL que permiten los


privilegios, vistas y cifrados para acceder a la informacin de una
base de datos. Utiliza este enlace para realizar la actividad.

Privilegios de usuarios:

Para crear un nuevo usuario se utiliza la sentencia GRANT, ejemplo:

GRANT USAGE ON *.* TO nom_usuario IDENTIFIED BY 'clave';

Pero hay una manera ms sencilla y corta:

CREATE USER nom_usuario IDENTIFIED BY 'clave';

Si queremos limitar la conexin de manera local va el siguiente cdigo:

CREATE USER 'nom_usuario'@'localhost' IDENTIFIED BY 'clave';

Si queremos crear una contrasea si se tiene uno, o tal vez cambiar el actual va el siguiente
cdigo:

SET PASSWORD FOR usuario = PASSWORD ('contrasea');

Ejemplo:

SET PASSWORD FOR lalo@localhost = PASSWORD ('uptelesup');

Los nuevos usuarios que hemos creado no poseen privilegios para nada, para ello se debe utilizar
la sentencia GRANT y las siguientes sentencias:

Opciones de tipo de permiso
GRANT SELECT Un permiso especifico
GRANT SELECT, INSERT, UPDATE Varios permisos
GRANT ALL Todos los permisos

Opciones para indicar a que base de datos y tablas se aplicarn dichos permisos
ON DATABASE.TABLE A una tabla
ON DATABASE.TABLE1, A varias tablas
DATABASE.TABLE2,
DATABASE2.TABLE.
ON DATABASE.* A todas las tablas de la BD

Opciones para indicar a quienes se indicarn dichos permisos
TO usuario Un usuario
TO usuario1, usuario2 Varios usuarios

Supongamos que tenemos la base de datos: transportes (tablas: marca, producto) y la base de
datos pedidos (tablas: cliente, producto, pedido)

Y dos usuarios: lalo y root.

clip_image001Y queremos dar permiso al usuario David de seleccin en la base de datos
transportes en la tabla productos. La sentencia seria la siguiente:

GRANT SELECT

ON transporte.productos.

TO lalo@localhost;



Ahora bien si queremos que lalo pueda dar privilegios a otro usuario llamado reyes
utilizaremos la sentencia: WITH GRANT OPTION.



Recuerda que: usuario@localhost, solo se agrega si el usuario es local.

Bien ahora si queremos revocar un privilegio, podemos hacerlo con la sentencia REVOKE.

REVOKE Privilegio
ON Tabla
FROM usuario


Ejemplo:



REVOKE SELECT
ON transportes.producto
FROM reyes@localhost


Ahora bien, para borrar un usuario se tiene la sentencia DROP USER, para borrar un usuario
primero debemos quitar los privilegios con la sentencia REVOKE y luego borrar con la sentencia
DROP USER.

Ejemplo para borrar el usuario reyes.

DROP USER reyes@localhost;

Bien pero si queremos ver todos los usuarios que hay en la base de datos utilizaremos la
sentencia:

SELECT USER, HOST FROM mysql.user;



Y para conocer los privilegios que tiene cada usuario utilizaremos la sentencia:

SHOW GRANTS FOR usuario;



Ejemplo: SHOW GRANTS FOR lalo@localhost;








Vistas

Una vista es una tabla temporal, naturalmente es utilizado para realizar consultas. Se puede
utilizar desde un cdigo sencillo hasta una ms compleja, pero exista cierta limitacin en cdigo
respecto a las vistas, para ello se debe hacer directamente en la base de datos. La vista creada nos
permitir consultar rpidamente cualquier consulta que hayamos programado.

Para crear una vista se utiliza la sentencia CREATE VIEW.

CREATE VIEW (nombre de la vista) AS SELECT * FROM (tabla);

Ejemplo: CREATE VIEW vista_producto AS SELECT nompro, marpro FROM producto;

Para consultar esta vista escribiremos lo siguiente:

SELECT * FROM vista_producto;

Pero si queremos actualizar la vista no necesariamente tenemos que hacer otro, para ellos
aplicaremos la sentencia OR REPLACE.

Ejemplo: CREATE OR REPLACE VIEW vista_producto AS SELECT nompro, marpro, stockpro FROM
producto;

Para eliminar una vista se utiliza la sentencia: DROP VIEW <vista>

Ejemplo: DROP VIEW vista_producto;

Recordar para estos casos, slo el usuario con privilegios puede realizar esta sentencia.

Una manera de ver la definicin de una vista creada se utiliza la siguiente sentencia:

SHOW CREATE VIEW vista_producto;

Bien ahora haremos un ejemplo con un grado de dificultad un poco mayor.

Ejemplo: Queremos crear una vista que seleccione dos tablas diferentes, y adems que las
columnas en las vistas tenga diferentes nombres.



Bien para ello crearemos una vista que realice esta consulta



Y esta consulta se creara en la vista condicin. Si queremos ejecutar esta consulta, solamente
abriramos la vista condicin as:

SELECT * FROM condicin



En general con las vista podemos consultar datos como si de una tabla cualquiera se tratase,
podemos por ejemplo utilizar clausulas operadores, etc. durante la consulta.










Cifrado de datos:

Es la encriptacin de datos, dicho en otras palabras ocultar la informacin hacindola muy difcil
de descifrarlo. En MYSQL existen dos formas de encriptacin de datos, uno que es posible revertir
el cifrado mediante una clave que proporcionemos y otro que es irreversible, no se puede revertir
el cifrado.

La funcin ENCODE toma dos argumentos, la primera es la cadena que debemos encriptar y la
segunda es la secuencia que ser utilizada para encriptar la informacin, un ejemplo sera:

SELECT ENCODE ('desierto','23');



SELECT DECODE (' {W-','23');



La sentencia DECODE revierte el cifrado.

La otra forma de cifrado de datos, la que no se puede revertir se hace por medio de la funcin
md5 de la siguiente forma:

SELECT MD5 ('desierto');



Otra de la sentencia irreversible se hace con la sentencia PASSWORD.

SELECT PASSWORD ('desierto');



Lo que hace MYSQL es comparar la cadena resultante de la encriptacin con la cadena encriptado,
si esa comparacin resulta cierta, entonces MYSQL sabe que el password era correcto.

De manera general estos son algunos de los algoritmos de cifrado que MYSQL utiliza para
encriptar los datos de la base de datos.

S-ar putea să vă placă și