sentencias en sql

8
Privilegios de usuarios: Para crear un nuevo usuario se utiliza la sentencia GRANT , ejemplo: GRANT USAGE ON *.* TO nomusuario !"ENT!#!E" $% &clave&' Pero (a) una manera m s sencilla ) corta: +REATE USER nomusuario !"ENT!#!E" $% &clave&' Si ueremos limitar la cone-i n /e manera local va el si c /i0o: +REATE USER &nomusuario&1&local(ost& !"ENT!#!E" $% &clav Si ueremos crear una contrase2a si se tiene uno, o tal cam3iar el actual va el si0uiente c /i0o: SET PASS4OR" #OR usuario 5 PASS4OR" 6&contrase2a&7' Ejemplo: SET PASS4OR" #OR /avi/1local(ost 5 PASS4OR" 6&telesup&7' 8os nuevos usuarios ue (emos crea/o no poseen privile0i para na/a, para ello se /e3e utilizar la sentencia GRANT ) las si0uientes sentencias: Opciones /e tipo /e permiso GRANT SE8E+T Un permiso especi9co GRANT SE8E+T, !NSERT, UP"ATE arios permisos GRANT A88 To/os los permisos Opciones para in/icar a ue 3ase /e /atos ) ta3las se aplicar n permisos

Upload: henry-melgar-galvez

Post on 04-Nov-2015

215 views

Category:

Documents


0 download

DESCRIPTION

ADMINISTRACION DE BASE DE DATOS

TRANSCRIPT

Privilegios de usuarios:Para crear un nuevo usuario se utiliza la sentenciaGRANT, ejemplo:GRANT USAGE ON*.*TOnom_usuarioIDENTIFIED BY'clave';Pero hay una manera ms sencilla y corta:CREATE USERnom_usuarioIDENTIFIED 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 FORusuario =PASSWORD('contrasea');Ejemplo:SET PASSWORD FORdavid@localhost =PASSWORD('telesup');Los nuevos usuarios que hemos creado no poseen privilegios para nada, para ello se debe utilizar la sentenciaGRANTy las siguientes sentencias:Opciones de tipo de permiso

GRANT SELECTUn permiso especifico

GRANT SELECT, INSERT, UPDATEVarios permisos

GRANT ALLTodos los permisos

Opciones para indicar a que base de datos y tablas se aplicarn dichos permisos

ONDATABASE.TABLEA una tabla

ONDATABASE.TABLE1, DATABASE.TABLE2, DATABASE2.TABLE.A varias tablas

ONDATABASE.*A todas las tablas de la BD

Opciones para indicar a quienes se indicarn dichos permisos

TOusuarioUn usuario

TOusuario1, usuario2Varios usuarios

Vamos a un ejemplo:Supongamos que tenemos la base de datos:transportes (tablas:marca, producto)y la base de datospedidos (tablas:cliente, producto, pedido)Y dos usuarios:davidyroot.Y queremos dar permiso al usuarioDavidde seleccin en la base de datostransportesen la tablaproductos. La sentencia seria la siguiente:GRANT SELECTONtransportes.productos.TOdavid@localhost;

Ahora bien si queremos que david 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 sentenciaREVOKE.REVOKEPrivilegio

ONTabla

FROMusuario

Ejemplo:REVOKE SELECTONtransportes.productoFROMreyes@localhost

Ahora bien, para borrar un usuario se tiene la sentenciaDROP USER, para borrar un usuario primero debemos quitar los privilegios con la sentenciaREVOKEy luego borrar con la sentenciaDROP USER.Ejemplo para borrar el usuarioreyes.DROP USERreyes@localhost;Bien pero si queremos ver todos los usuarios que hay en la base de datos utilizaremos la sentencia:SELECT USER, HOST FROMmysql.user;

Y para conocer los privilegios que tiene cada usuario utilizaremos la sentencia:SHOW GRANTS FORusuario;

Ejemplo:SHOW GRANTS FORdavid@localhost;VistasUna 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 sentenciaCREATE VIEW.CREATE VIEW(nombre de la vista)AS SELECT*FROM(tabla);Ejemplo:CREATE VIEWvista_productoAS SELECTnompro, marproFROMproducto;Para consultar esta vista escribiremos lo siguiente:SELECT*FROMvista_producto;Pero si queremos actualizar la vista no necesariamente tenemos que hacer otro, para ellos aplicaremos la sentenciaOR REPLACE.Ejemplo:CREATE OR REPLACE VIEWvista_productoAS SELECTnompro, marpro, stockproFROMproducto;Para eliminar una vista se utiliza la sentencia:DROP VIEWEjemplo:DROP VIEWvista_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 VIEWvista_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*FROMcondicin

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 funcinENCODEtoma 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:SELECTENCODE('desierto','23');

SELECTDECODE(' {W-','23');

La sentenciaDECODErevierte 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 sentenciaPASSWORD.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.Conclusiones: