Download - Mysql Dia5
-
8/13/2019 Mysql Dia5
1/25
MYSQL DIA5
Freddy Condori Guevara
-
8/13/2019 Mysql Dia5
2/25
BUSQUEDAS DE PATRONES
El otro tipo de coincidencia de patrones proporcionadopor MySQL hace uso de expresiones regulares. Para
hacer uso de estos tipos de patrones se tienen queusar los operadores REGEXP y NOT REGEXP ( oRLIKE y NOT RLIKE, los cules son sinnimos).
Algunas caractersticas de las expresiones regulares son: El caracter punto ( . ) coincide con cualquier caracter.
-
8/13/2019 Mysql Dia5
3/25
BUSQUEDAS DE PATRONES(2)
Una clase de caracteres [...] coincide con cualquiercaracter dentro de los parntesis cuadrados. Por
ejemplo, [abc] coincide con a, b o c. Para nombrar unrango de caracteres, se usa el guin. [a-z] coincidecon cualquier letra minscula, mientras que [0-9]coincide con cualquier digito.
El caracter asterisco ( * ) coincide con cero o msinstancias de lo que le preceda. Por ejemplo, x*coincide con cualquier nmero de caracteres x, [0-9]*coincide con cualquier nmero de digitos, y .* (puntoasterisco) coincide con cualquier cosa.
-
8/13/2019 Mysql Dia5
4/25
BUSQUEDAS DE PATRONES(3)
El patrn coincide si ste ocurre en cualquierparte del valor que est siendo evaluado. (Lospatrones SQL coinciden nicamente en losvalores completos.)
Para indicar el inicio o el final de un valor queest siendo evaluado se usan los caracteres ^y $respectivamente.
-
8/13/2019 Mysql Dia5
5/25
EJEMPLOS DE REGEXP
Para demostrar como se usan las expresiones
regulares, se van a mostrar los ejemplospresentados anteriormente con el operadorLIKE, ahora con el operador REGEXP.
Para encontrar los nombres que inician con C:
mysql> SELECT * FROM mascotas WHEREnombre REGEXP "^b";
-
8/13/2019 Mysql Dia5
6/25
EJEMPLOS DE REGEXP(2)
Desde la versin 3.23.4, para forzar que el operadorREGEXP sea sensible al uso de maysculas y
minsculas, se tiene que usar la palabra claveBINARYpara hacer de una de las cadenas, unacadena binaria. Observar los resultados de lasiguientes consultas.
mysql> SELECT * FROM mascotas WHERE nombreREGEXP BINARY "^b";
mysql> SELECT * FROM mascotas WHERE nombreREGEXP BINARY "^B";
-
8/13/2019 Mysql Dia5
7/25
EJEMPLOS DE REGEXP(3)
Para encontrar los nombres que finalizan con
la palabra fy, haremos uso del caracter $.mysql> SELECT * FROM mascotas WHEREnombre REGEXP "fy$";
Para encontrar los nombres que contienen una
letra s, la consulta sera:mysql> SELECT * FROM mascotas WHEREnombre REGEXP "s";
-
8/13/2019 Mysql Dia5
8/25
GESTION DE CUENTAS EN MYSQL
Una cuenta en mysql esta definida en trminosde un nombre de usuario y del host o hosts delos cuales puede acceder al servidor. Lacuenta tambien cuenta con un password. Los nombres de usuarios y password de mysql no
tienen nada que ver con los nombre de usuarios y
password de windows o linux. El nombre de usuario de mysql no puede los 16
caracteres de longitud.
Mysql utiliza su propio algoritmo para encriptar los
password de las cuentas.
-
8/13/2019 Mysql Dia5
9/25
CREAR UNA NUEVA CUENTA
Para crear una nueva cuenta existen dos
opciones: Usando la sentencia CREATE USER o GRANT
Manipulando directamente las tablas de permisosusando las sentencias INSERT, UPDATE, DELETE.
Se recomienda utilizar las sentencias CREATEUSER o GRANT
-
8/13/2019 Mysql Dia5
10/25
CREATE USER
La sintaxis de create user es la siguiente:
CREATE USER user [IDENTIFIED BY[PASSWORD] 'password']
Ejemplo:
CREATE USER jose
CREATE USER juanIDENTIFIED BY juan'
-
8/13/2019 Mysql Dia5
11/25
GRANT
La sintaxis de GRANT es la siguiente:
GRANTpriv_typeON {tbl_name | * | *.* | db_name.*}
TO user [IDENTIFIED BY 'password']
Ejemplo:mysql> GRANT ALL PRIVILEGES ON *.* TO'nuevo'@'localhost IDENTIFIED BY nuevo';
-
8/13/2019 Mysql Dia5
12/25
NIVELES DE GRANT
NIVEL GLOBAL
Tiene privilegios aplicados a todas la base de datos,
este permiso esta almacenado en mysql.user GRANTALL ON *.* otorga este permiso.
NIVEL BASE DE DATOS
Tiene privilegios aplicados a una base de datos, este
permiso esta almacenado en mysql.db y mysql.hostGRANT ALL ON db_name.* otorga este permiso.
NIVEL TABLAS
Tiene privilegios aplicados a una tabla, este permisoesta almacenado en mysql.tables_priv, GRANT ALLON db_name.table_name otorga este permiso.
-
8/13/2019 Mysql Dia5
13/25
NIVELES DE GRANT(2)
NIVEL COLUMNA
Tiene privilegios aplicados a una sola columna de una
tabla, este permiso esta almacenado enmysql.columns_priv GRANT ALL nombre_columnaON nombre_tabla otorga este permiso.
NIVEL EJECUCION
Tiene privilegios sobre los procedimeintos y funcionesalmacenados, este permiso esta almacenado enmysql.procs_priv. Las opciones CREATE ROUTINE,
ALTER ROUTINE, EXECUTE ROUTINE. Todos estospermiso pueden ser asignado a para cada rutina.
-
8/13/2019 Mysql Dia5
14/25
PRIVILEGIOS DE GRANT
ALL [PRIVILEGES] pone todos los privilegios exceptoel privilegio GRANT OPTION.
ALTER permite usar el ALTER TABLE. ALTER ROUTINE permite modificar o eliminar las
rutinas almacenadas.
CREATE permite el uso de CREATE TABLE.
CREATE ROUTINE permite la creacion yalmacenamiento de rutinas.
CREATE TEMPORARY TABLES permite la creacionde tablas temporales.
-
8/13/2019 Mysql Dia5
15/25
PRIVILEGIOS DE GRANT (2)
CREATE USER permite el uso de CREATE USER,DROP USER RENAME USER, Y REVOKE ALL
PRIVILEGES. CREATE VIEW permite el uso de CREATE VIEW, te
permite crear vistas.
DELETE permite el uso DELETE
DROPpermite el uso DROP TABLE EVENT permite la creacion de eventos para el
planificador de eventos.
EXECUTE permite al usuario ejecutar rutinasalmacenadas
FILE permite el uso deSELECT ... INTO OUTFILE and
-
8/13/2019 Mysql Dia5
16/25
PRIVILEGIOS DE GRANT (3)
INDEXpermite el uso CREATE INDEX and DROPINDEX
INSERTpermite el uso de insert INSERT
LOCK TABLES permite el uso de LOCK TABLES paralas tablas para las que tengas permiso de SELECT
SELECT permite el uso de SELECT
SHOW DATABASES permite mostrar todas las Basesde Datos
SHOW VIEW permite el uso de SHOW CREATE VIEW
-
8/13/2019 Mysql Dia5
17/25
PRIVILEGIOS DE GRANT (4)
TRIGGER permite la creacion o eliminacion de
tablas. UPDATEpermite el uso de UPDATE
USAGE sinnimo para no privileges
GRANT OPTION te permite asignar privilegiosa las cuentas.
-
8/13/2019 Mysql Dia5
18/25
MANIPULANDO LA TABLA DE
PRIVILEGIOS
La otra opcion para crear usuario es insertarlo
directamente e la tabla de usuarios.(mysql.users)
mysql>INSERT INTO user VALUES('localhost',nombre_usuario',
PASSWORD(password_usuario'),'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
mysql>FLUSH PRIVILEGES;
-
8/13/2019 Mysql Dia5
19/25
MANIPULANDO LA TABLA DE
PRIVILEGIOS (2)
La razon de usar FLUSH PRIVILEGES, es lasiguiente como hemos insertado los datosmanualmente a la tabla, esto solo tendranefecto cuando el servidor se reiniciara. Al usarFLUSH PRIVILEGES esto no es necesario.
Como se habran dado cuenta modificardirectamente la tabla de privilegios es mascomplicando que usar los comandos CREATEUSER o GRANT.
-
8/13/2019 Mysql Dia5
20/25
ELIMINADO CUENTAS
Para eliminar las cuentas se puede usar la
sentencia DROP USER o manipularmanualmente la tabla de permisos.
Usando la sentencia DROP USER:
DROP USER juan
Modificando manualmente la tabla:
DELETE FROM user WHERE user = juan';
-
8/13/2019 Mysql Dia5
21/25
ASIGNANDO PASSWORD
La sentencia SET PASSWORD asigna un
password a una cuenta de usuario. La sintaxises:
SET PASSWORD [FOR user] = PASSWORD('some password')
igual que en las anteriores operacin de creary eliminar usuario esta tarea tambien se lopuede realizar manualmente.
-
8/13/2019 Mysql Dia5
22/25
ASIGNANDO PASSWORD(2)
Ejemplo asigancion de password:
SET PASSWORD FOR juan'@localhost' =PASSWORD(password');
Lo mismo pero de la forma manual:
UPDATE mysql.user SET
Password=PASSWORD('newpass')WHERE User=juan' AND Host=localhost';
FLUSH PRIVILEGES;
-
8/13/2019 Mysql Dia5
23/25
PRACTICA CON USUARIO
Creacion de una Base de Datos Parque
Creacion de una Tabla Juegos que tenga uncodigo y nombre del juego.
Creacion de una Tabla Atracciones que tengaun juego y nombre de la atraccion.
-
8/13/2019 Mysql Dia5
24/25
PRACTICA CON USUARIO
Ejercicios:
Creacion de un usuario (usuario1) que puede acceder
desde cualquier maquina de la red local a la base dedatos parque, pero que solo tenga permisos parahacer consultas (SELECT) a todas las tablas.
Creacion de un usuario (usuario2) que pueda hacertodo lo que quiera (SELECT, INSERT, UPDATE,DELETE) solo a la tabla animales desde una maquinaespecifica (ip).
Creacion de un usuario (usuario3) que solo puedahacer modificaciones y eliminaciones( UPDATE,
DELETE) solo a la tabla animales solo localmente.
-
8/13/2019 Mysql Dia5
25/25
PRACTICA CON USUARIO
Creacion de usuario(usuario4) que no tengacontrasea y pueda acceder desde donde seaa la tabla atracciones y solo pueda realizarconsultas (SELECT).
Creacion de un usuario (usuario5) que pueda
crear otro usuarios y que solo tenga accesolocal a todas las bases de datos.