Mostrando entradas con la etiqueta parte5. Mostrar todas las entradas
Mostrando entradas con la etiqueta parte5. Mostrar todas las entradas

martes, 17 de marzo de 2015

[Parte 5]jQuery

jQuery - desplazandose en el DOM

jQuery es una herramienta de muy gran alcance la cual proporciona una gran variedad de metodos para desplazarse en el DOM para ayudarnos a seleccionar elementos del documento al azar asi como en metodo secuencial. La mayor parte de los metodos de desplazamiento del DOM no modifican el objeto jQuery y ellos se utilizan para filtrar los elementos a partir de un documento basado en condiciones dadas.

Buscando elementos por indice

Considere la posibilidad de un simple documento con el siguiente contenido HTML:

<html>
<head>
   <title>Titulo</title>
</head>
<body>
    <div>
      <li>Elemento de la lista 1</li>
      <li>Elemento de la lista 2</li>
      <li>Elemento de la lista 3</li>
      <li>Elemento de la lista 4</li>
      <li>Elemento de la lista 5</li>
      <li>Elemento de la lista 6</li>
    </div>
</body>
</html>



* Cada lista tiene su propio indice y se puede localizar utilizando directamente el metodo eq(indice) del siguiente ejemplo. Cada elemento hijo comienza su indice desde 0, por lo tanto la lista del elemento 2 se accede mediante el uso de $("li").eq(1) y asi sucesivamente. Ejemplo: 
A continuacion se presenta un ejemplo sencillo que añade color al tercer elemento de la lista:

<html>
<head>
<title>Titulo</title>
   <script type="text/javascript" src="js/jquery-2.1.3.min.js"></script>
   <script type="text/javascript">
         $(document).ready(function(){
            $("li").eq(2).addClass("seleccionado");
         });
   </script>
   <style type="text/css">
      .seleccionado { color: red; }
   </style>
</head>
<body>
   <div>
      <li>Elemento de la lista 1</li>
      <li>Elemento de la lista 2</li>
      <li>Elemento de la lista 3</li>
      <li>Elemento de la lista 4</li>
      <li>Elemento de la lista 5</li>
      <li>Elemento de la lista 6</li>
   </div>
</body>
</html>


Filtrado de elementos

El metodo filter(selector) se puede utilizar para filtrar todos los elementos del conjunto que coincidan con el selector especificado. El selector puede ser escrito utilizando cualquier sintaxis del selector. Ejemplo:
A continuacion se presenta un ejemplo sencillo que aplica color a las listas con la clase .media:

<html>
<head>
<title>Titulo</title>
   <script type="text/javascript" src="js/jquery-2.1.3.min.js"></script>
   <script type="text/javascript">
         $(document).ready(function(){
            $("li").filter(".media").addClass("seleccionado");
         });
   </script>
   <style type="text/css">
      .seleccionado { color: red; }
   </style>
</head>
<body>
   <div>
      <li class="arriba">Elemento de la lista 1</li>
      <li class="arriba">Elemento de la lista 2</li>
      <li class="media">Elemento de la lista 3</li>
      <li class="media">Elemento de la lista 4</li>
      <li class="abajo">Elemento de la lista 5</li>
      <li class="abajo">Elemento de la lista 6</li>
   </div>
</body>
</html>


Localizacion de elementos descendientes

El metodo find(selector) se puede utilizar para localizar todos los elementos descendientes de un tipo en particular de elementos. El selector puede ser escrito utilizando cualquier sintaxis de selector. Ejemplo:
A continuacion se presenta un ejemplo que selecciona todos los elementos <span> disponibles dentro de los diferentes elementos <p>:

<html>
<head>
<title>Titulo</title>
   <script type="text/javascript" src="js/jquery-2.1.3.min.js"></script>
   <script type="text/javascript">
         $(document).ready(function(){
            $("p").find("span").addClass("seleccionado");
         });
   </script>
   <style type="text/css">
      .seleccionado { color: red; }
   </style>
</head>
<body>
   <div>
      <p>Este es el 1er parrafo y <span>ESTO ES ROJO</span></p>
      <p>Este es el 2do parrafo y <span>ESTO TAMBIEN ES ROJO</span></p>
   </div>
</body>
</html>


jQuery metodos de desplazamiento

La siguiente tabla enumera abajo metodos utiles que se pueden utilizar para filtrar los diversos elementos de una lista de elementos DOM:


+----------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Selector             | Descripcion                                                                                                                                                                                                                                                                         |
+----------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| add(Selector)        | Añade mas elementos, que coincidan con el selector dado, al conjunto de elementos que ya coinciden. Ejemplo: $(".top").add(".middle").addClass("selected");                                                                                                                         |
+----------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| andSelf()            | Añade la seleccion anterior a la seleccion actual. Ejemplo: $("div").find("p").andSelf().addClass("border");                                                                                                                                                                        |
+----------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| children([selector]) | Obtener un conjunto de elementos que contengan todos los hijos inmediatos de cada uno del conjunto de elementos que coincidan.  Ejemplo: $("div").children(".selected").addClass("blue");                                                                                           |
+----------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| closest(selector)    | Obtiene un conjunto de elementos que contengan todos los hijos inmediatos unicos de cada uno de los elementos que coincidan en el conjunto. Ejemplo: $( document ).on( "click", function( event ) {,$( event.target ).closest( "li" ).toggleClass( "hilight" );});                  |
+----------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| contents()           | Busca todos los nodos secundarios dentro de los elementos coincidentes (incluyendo los nodos de texto), o el documento contenido, si el elemento es un iframe.Ejemplo: $( "#frameDemo" ).contents().find( "a" ).css( "background-color", "#BADA55" );                               |
+----------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| end()                | Revertir la mas reciente 'destructiva' operacion, cambiando el conjunto de elementos coincidentes a su estado anterior.  Ejemplo: $("p").find("span").css("border", "2px red solid");                                                                                               |
+----------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| find(selector)       | Busca los elementos descendientes que coinciden con los selectores especificados.  Ejemplo: $("p").find("span").addClass("selected");                                                                                                                                               |
+----------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| next([selector])     | Obtener un conjunto de elementos que contienen los unicos proximos hermanos de cada uno del conjunto de los elementos dados. Ejemplo: $("p").next(".selected").addClass("hilight");                                                                                                 |
+----------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| nextAll([selector])  | Encuentra todos los elementos hermanos despues del elemento actual. Ejemplo: $("div:first").nextAll().addClass("hilight");                                                                                                                                                          |
+----------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| offsetParent()       | Devuelve una coleccion jQuery con el padre posicionado de primer elemento coincidente. Ejemplo: $("p").offsetParent().addClass('hilight');                                                                                                                                          |
+----------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| parent([selector])   | Obtiene el padre directo de un elemento. Si se llama a un conjunto de elementos, el padre retorna un conjunto de elementos unicos directo al elemento padre.  Ejemplo: $("p").parent().addClass('hilight');                                                                         |
+----------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| parents([selector])  | Obtiene un conjunto de elementos que contiene los antepasados unicos del conjunto combinado de elementos (excepto por el elemento raiz). Ejemplo: var parentEls = $("p").parents(),.map(function () {,return this.tagName;,}).get().join(", ");,$("b").append("" + parentEls + ""); |
+----------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| prev([selector])     | Obtiene un conjunto de elementos que contiene los hermanos anteriores unicos de cada conjunto de elementos que coinciden.Ejemplo:,$("p").prev(".selected").addClass("hilight");                                                                                                     |
+----------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| prevAll([selector])  | Encuentra todos los elementos hermanos delante del elemento actual.,Ejemplo: $("div:last").prevAll().addClass("hilight");                                                                                                                                                           |
+----------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| siblings([selector]) | Obtener un conjunto de elementos que contengan todos los hermanos unicos de cada uno de un conjunto de elementos que coinciden.                                                                                                                                                     |
+----------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 
 
Hasta aqui esta parte. Si quieren entender mas de los ejemplos de la tabla anterior les recomiendo pasarse por la documentacion oficial de jQuery.

Esta parte ha sido traducida de TutorialsPoint.
 
 
 
 

domingo, 12 de enero de 2014

[BootStrap] MiniTutorial Parte 5

Usando Bootstrap

Proyecto GitHub

Como muchos de los grandes proyectos de codigo abierto, el poder de Bootstrap no viene solo de los desarrolladores en el nucleo del proyecto, sino tambien de la comunidad de desarrollo que lo sustenta. GitHub es un gran repositorio de codigo para los proyectos, y al momento de escribir, Bootstrap es uno de los proyectos mas populares. Con mas de 42.000 estrellas y mas de 10.000 forks el proyecto es un hervidero de activad. Como ya se dijo en el minitutorial numero 1
si desea utilizar bootstrap solo tiene que descargar el archivo .zip desde el sitio o puede hacerlo usando git.

Para los no iniciados, git es un sistema de control de versiones de codigo libre y abierto. Bootstrap y gran cantidad de otros proyectos  usan gitHub, que es un repositorio de codigo en linea para proyectos de git. Para descargar el codigo fuente de Bootstrap, ejecute lo siguiente desde la linea de comandos:

git clone https://github.com/twitter/bootstrap.git


Con esto clona bootstrap y le dara una descarga completa de todos los archivos, no solo el CSS/Javascript sino tambien todas las paginas de la documentacion y los archivos LESS para los elementos dinamicos de javascript.
Si se desea, usando los archivos LESS, usted puede compilar su propia version de Bootstrap, con las caracteristicas o las personalizaciones que necesita.

Personalizando Bootstrap

Usted puede descargar el codigo fuente, O si desea personalizar facilmente algunos colores, el tamaño o los plugins, puede poner bootstrap a sus necesidades a traves de su sitio web.

Cuando utiliza la pagina de personalizar usted elige los componentes que necesita.

Por ejemplo, usted puede optar por dejar todas las funciones de web resposive, o tal ves le gustaria dejar fuera las clases de boton que entran en conflicto con las que ya tienes.

Tambien puede optar por cualquiera de los plugins de Jquery. Si usted sabe que no va usar los modales o el carrusel, se puede dejar fuera de la compilacion, por lo que tiene un archivo mas pequeño para solicitar (descargar).


Por ultimo, puede configurar las variables LESS. Todo, desde el numero de columnas, a los colores de la tipografia, pueden ser modificados aqui. Con estas opciones se puede atender Bootstrap a sus necesidades.

Usando LESS

Hay algunas maneras de utilizar LESS con Bootstrap. La primera, y quizas la mas facil, es usar un preprocesador como CodeKit o simpLESS. Usted puede utilizar estas herramientas para ver ciertos archivos o carpetas. Entonces cuando se guarda cualquiera de los archivos, construyen los archivos CSS maestros. Ademas de utilizar las tecnicas tradicionales de estilo CSS, puede utilizar funciones avanzadas como mixins
y funciones para cambiar dinamicamente la apariencia de su sitio con solo cambiar algunas variables.


 CodeKit

 SimpLESS

LESS es un lenguaje de hojas de estilo dinamico para escribir CSS. Se le permite escribir las variables, funciones, y mixins para su CSS. La carpeta /less de Bootstrap tiene unos pocos archivos, pero para establecer variables globales, compruebe los archivos variables.less  y mixins.less.

 
En el archivo variables.less, encontrara todas las variables globales para Bootstrap. Digamos que usted quiere cambiar el color de todos los enlaces. Solo tendria que actualizar LESS para compilar el CSS, y todos los enlaces cambiarian de color.

/* Codigo anterior */
@linkColor: #08c;
@linkColorHover:  darken(@linkColor, 15%);

/* Codigo Nuevo */
@linkColor: #7d00cc;
@linkColorHover:  darken(@linkColor, 15%);



Ahora, todos los enlaces se cambian a un color purpura, y los botones y otros elementos de la interfaz que requieran @linkColor seran actualizados atraves de su sitio. La anidacion por si sola es un gran ahorro de tiempo.

Text Snippets (Fragmentos de Texto)

Para desarrollar rapidamente sitios de bootstrap, podemos utilizar Sublime Text y bootstrap snippets de DEVtellect en Github. Esto hace que la adicion de cualquier componente sea tan facil de añadir como usar una atajo del teclado.


Para instalar los snippets (fragmentos), puedes clonar el repositorio git en tu carpeta de paquetes.

git clone git@github.com:devtellect/sublime-twitter-bootstrap-snippets.git

Hay una recopilacion para un monton de aplicaciones IDEs/Editores de Texto.

Photoshop Templates (Plantillas de Photoshop)

Ademas de los snippets (fragmentos), se han producido algunos documentos de photoshop de todos los elementos de marcado (markup) de bootstrap. Mi favorito viene de REPIX Design.



Aqui estan algunas caracteristicas:

* Colores ajustables
* Capas separadas
* Basado de vectores

El PSD es gratis, por las peticiones del autor usted paga con un tweet.

Temas

Si usted tiene que instalar un sistemas o algo parecido y desea añadir algun tema, hay pocas maneras de encontrarlo libre y de primera calidad de Bootstrap. Mis favoritos son {Wrap}Bootstrap  y Bootswatch. Ambos tienen algunas grandes opciones, y hacen qeu sea facil obtener un nuevo estilo a su sitio.

Construido con Bootstrap

Si usted esta buscando aun mas inspiracion, eche un vistaso a Build with Boostrap, un Tumblr que cuenta con capturas de pantalla de sitios Bootstrap enviados por usuarios. Es una manera divertida de ver sitios web creados con Bootstrap.

Conclusion

Como puede ver, Cualquiera que sea el proyecto, Boostrap puede llenar las necesidades de casi cualquier proyecto web. Su mezcla de resposive framework, amplias extensiones de complementos Javascript, y componentes de interfaz robusta, lo hacen  desarrollar facil, rapido y rico en caracteristicas.



jueves, 16 de mayo de 2013

MySQL MiniTutorial Parte 5

Introduccion

En esta parte del minicursillo de mysql veremos los permisos en los usuarios en mysql, es muy importante ya que de esta manera podemos especificar cosas como son: si tiene permisos de leer archivos del servidor, si tiene permisos de conectarse tantas veces a la base de datos, de hacer tantas consultas, de ver algunas bases de datos, columnas, filas, etc....


Usuarios Y Privilegios

Empecemos definiendo como esta creado un usuario, es decir, como puede ser identificado por el servidor, de manera que los haya dos usuarios con el mismo nombre pero el servidor pueda identificarlos como dos usuarios diferentes....

Por ejemplo, podemos tener dos usuarios con el nombre joe:

joe@localhost

joe@192.168.1.2

Con esto indicariamos que hay dos usuarios diferentes llamados joe, uno desde la maquina local y otro desde otra maquina que esta en la subred...
El arroba lo usamos como un tipo de separador!, entonces tenemos dos identificadores en mysql en este caso seria el user y el host... todo esto se puede conseguir desde la base de datos de mysql.... Por ejemplo:


En el caso de esta imagen, tengo una consulta como la siguiente:

select user,host,password from mysql.user;

me muestra 8 filas.... en este caso solo tengo en realidad 3 usuarios....
¿Por que solo tres usuarios? Pues por que el usuario root es el mismo para todo por que siempre esta indicando al mismo host en este caso localhost, arthusu-PC,127.0.0.1,::1 son el mismo host pero puede interpretarse de diferente manera como lo ves en la imagen.... Tambien podemos encontrar muchas columnas y filas interesantes en la base de datos mysql:


Nombre tabla user db host
Alcance columnas Host Host Host
  User Db Db
  Password User  
Columnas privilegios Select_priv Select_priv Select_priv
  Insert_priv Insert_priv Insert_priv
  Update_priv Update_priv Update_priv
  Delete_priv Delete_priv Delete_priv
  Index_priv Index_priv Index_priv
  Alter_priv Alter_priv Alter_priv
  Create_priv Create_priv Create_priv
  Drop_priv Drop_priv Drop_priv
  Grant_priv Grant_priv Grant_priv
  Create_view_priv Create_view_priv Create_view_priv
  Show_view_priv Show_view_priv Show_view_priv
  Create_routine_priv Create_routine_priv  
  Alter_routine_priv Alter_routine_priv  
  References_priv References_priv References_priv
  Reload_priv    
  Shutdown_priv    
  Process_priv    
  File_priv    
  Show_db_priv    
  Super_priv    
  Create_tmp_table_priv Create_tmp_table_priv Create_tmp_table_priv
  Lock_tables_priv Lock_tables_priv Lock_tables_priv
  Execute_priv    
  Repl_slave_priv    
  Repl_client_priv    
Columnas seguridad ssl_type    
  ssl_cipher    
  x509_issuer    
  x509_subject    
Columnas recursos control max_questions    
  max_updates    
  max_connections    
  max_user_connections  
Desde la cual podriamos modificar todo lo que estamos viendo en este minitutorial.... como ver los privilegios, modificarlos, eliminar un usuario, etc todo usando un usuario con los suficientes privilegios y algunas consultas que podemos hacer con lo anteriormente aprendido :) seria una buena forma de dejarles una tarea :D ja!

Otra forma de saberlo seria, por ejemplo si estamos conectados a la base de datos:

select current_user();


Como puedes ver el user que estoy usando actualmente es root@localhost

Crear una cuenta de usuario

Veremos como crear una cuenta de usuario con el comando CREATE USER, para ello veremos primero su sintaxis que es la siguiente:

CREATE USER user [IDENTIFIED BY [PASSWORD] 'password']
    [, user [IDENTIFIED BY [PASSWORD] 'password']] ...
La sintaxis la he tomado desde la pagina oficial de mysql, en este caso solo debo definir algunos puntos....

CREATE USER - el comando para crear un usuario
user - el nombre del usuario en este caso puede ser el que tu quieras, por ejemplo: arthusuBLOG

Luego sigue algo como esto  [] todo lo que este encerrado entre esos corchetes es opcional, es decir, lo ponemos si nosotros queremos pero si no queremos no, es mas bien si lo ocupamos o no....

IDENTIFIED BY [PASSWORD] - especificamos la contraseña que queremos que tenga ese usuario

Entonces ya sabemos como funciona la sintaxis estamos listo para hacer nuestra consulta de crear un usuario, no sin antes decir, que para poder crear un usuario primero que nada en el usuario que me encuentro en este momento debe tener privilegios de CREATE USER o INSERT en la base de datos mysql....

podemos ver los privilegios del usuario que deseemos de esta manera:

SHOW GRANTS FOR user;

donde user es el usuario que deseas ver los permisos que tiene o privilegios....





Como podemos ver en este caso tengo todos los privilegios en todas las bases de datos... para saber los privilegios puedo ver la lista:





Privilegio Columna Contexto
CREATE Create_priv bases de datos, tablas, o índices
DROP Drop_priv bases de datos o tablas
GRANT OPTION Grant_priv bases de datos, tablas, o procedimientos almacenados
REFERENCES References_priv bases de datos o tables
ALTER Alter_priv tablas
DELETE Delete_priv tablas
INDEX Index_priv tablas
INSERT Insert_priv tablas
SELECT Select_priv tablas
UPDATE Update_priv tablas
CREATE VIEW Create_view_priv vistas
SHOW VIEW Show_view_priv vistas
ALTER ROUTINE Alter_routine_priv procedimientos almacenados
CREATE ROUTINE Create_routine_priv procedimientos almacenados
EXECUTE Execute_priv procedimientos almacenados
FILE File_priv acceso a archivos en la máquina del servidor
CREATE TEMPORARY TABLES Create_tmp_table_priv administración del servidor
LOCK TABLES Lock_tables_priv administración del servidor
CREATE USER Create_user_priv administración del servidor
PROCESS Process_priv administración del servidor
RELOAD Reload_priv administración del servidor
REPLICATION CLIENT Repl_client_priv administración del servidor
REPLICATION SLAVE Repl_slave_priv administración del servidor
SHOW DATABASES Show_db_priv administración del servidor
SHUTDOWN Shutdown_priv administración del servidor
SUPER Super_priv administración del servidor

Esta tabla ha sido tomada de la pagina oficial de mysql...


Entonces creo nuestro usuario que en este caso se llamara arthusublog y su host sera localhost y la contraseña sera mipass... en este caso utilice la funcion PASSWORD() para que me generara un hash de mysql v5 y lo pegue tal como texto plano :D





CREATE USER arthusu@localhost IDENTIFIED BY '*EA8CE51785AFEB6794A7F248E0D0F86C9A494E29 ';

Otra cosa que pasa es que este usuario no puede ser usado por que nos mandara un mensaje de error como el siguiente:


Esto se debe a que le usuario existe pero no tiene permisos de nada, ni siquera de entrar... xD

Entonces le asignare todos los permisos, en este caso, aunque podria ser de diferente manera y no asignar solo permisos especificos, pero como en este caso no estamos viendo a profundidad el comando GRANT entonces solo explicaremos que es lo que que hace el siguiente comando:



En este caso le damos todos los privilegios al usuario arthusu@localhost y despues actualizamos los privilegios con flush privileges.... esto es muy importante por que si no lo hacemos no nos dejara entrar... ya que los privilegios no serian actualizados y no tomaria la consulta anterior...

con esto podriamos decir que tenemos otro usuario administrativo :P
Entonces accedemos a el, esto lo vimos si no estoy mal de memoria en la primera parte.

mysql -u arthusublog -p mipass






Renombrar un usuario

En este caso veremos como renombrar el usuario que acabamos de crear que en este caso en arthusublog lo renombraremos a arthusu para eso usaremos el comando RENAME USER, la sintaxis es la siguiente:


RENAME USER old_user TO new_user
    [, old_user TO new_user] ...


RENAME USER - lo que hace es renombrar un usuario
old_user - es el usuario actual
new_user - es el nuevo nombre que le daremos al usuario
[,old_user TO new_user] - esto es opcional podemos indicar mas de 1 usuario a renombrar especificando una coma despues de el otro usuario :P

Veamos en un ejemplo:


Dar privilegios y Quitar Privilegios

Para conceder o dar privilegios usamos el comando GRANT, su sintaxis es la siguiente:


GRANT priv_type [(column_list)] [, priv_type [(column_list)]] ...
    ON [object_type] {tbl_name | * | *.* | db_name.*}
    TO user [IDENTIFIED BY [PASSWORD] 'password']
        [, user [IDENTIFIED BY [PASSWORD] 'password']] ...
    [REQUIRE
        NONE |
        [{SSL| X509}]
        [CIPHER 'cipher' [AND]]
        [ISSUER 'issuer' [AND]]
        [SUBJECT 'subject']]
    [WITH with_option [with_option] ...]

object_type =
    TABLE
  | FUNCTION
  | PROCEDURE

with_option =
    GRANT OPTION
  | MAX_QUERIES_PER_HOUR count
  | MAX_UPDATES_PER_HOUR count
  | MAX_CONNECTIONS_PER_HOUR count
  | MAX_USER_CONNECTIONS count


Si es un poco larga por que tiene su lista de opcionales :D
Antes de continuar quiero decirles que para poder dar privilegios el usuario que utilices necesita tener activada la opcion  GRANT OPTION.
En este caso explicaremos lo mas utilizado:

GRANT - concede privilegios
priv_type - El tipo de privilegio, por ejemplo: SELECT,ALTER,ALTER,INSERT,UPDATE,etc todo esto lo puedes ver en la segunda tabla de arriba :D
ON - indica que sigue un object_type que es una tabla,funcion o procedimiento, o sigue una tabla o una database... o *.* que seria cualquiera, el simbolo * es el que significa cualquiera o todo....
TO -  luego de el sigue el usuario donde tambien si quisieramos modificar la constraseña podriamos indicarla...
WITH - indica algunas cosas interesantes como puede ser lo que el usuario puede hacer, como por ejemplo: maximo de conecciones por hora, el maximo de peticiones por hora, etc...

Veamos un ejemplo, con el usuario que tenemos arthusuxd no queremos que tenga todo el control sino que solo pueda realizar select (coger datos) solo en la base de datos mysql y que solo pueda realizar 5 peticiones por hora....


Pero antes de poder darle privilegios a este usuario primero debemos revocarle o quitarle los permisos que tenia anteriormente que eran todos....

Esto lo hacemos con REVOKE...Su sintaxis es:

REVOKE priv_type [(column_list)] [, priv_type [(column_list)]] ...
    ON [object_type] {tbl_name | * | *.* | db_name.*}
    FROM user [, user] ...

REVOKE - quita privilegios
priv_type - El tipo de privilegio, por ejemplo: SELECT,ALTER,ALTER,INSERT,UPDATE,etc todo esto lo puedes ver en la segunda tabla de arriba :D
ON - indica que sigue un object_type que es una tabla,funcion o procedimiento, o sigue una tabla o una database... o *.* que seria cualquiera, el simbolo * es el que significa cualquiera o todo....
FROM  user - indica el usuario a revocar o quitar privilegios donde user vendria siendo el usuario al que le quieres quitar privilegios...

En este caso le quito todos los privilegios que tenia y luego actualizo la lista de privilegios, con esto cuando muestro los privilegios de ese usuario solo se queda con USAGE que en realidad significa que no tiene ningun privilegio :P

Ahora si le daremos los privilegios que anteriormente queriamos tener:





Estamos listos para probar esos privilegios:

Como puedes ver hemos sobrepasado las 5 peticiones por hora :D

Pero en este caso si quisieramos reiniciar de nuevo las peticiones hacemos una actualizacion en la base de datos mysql en la columna max_questions del usuario arthusu@localhost y lo dejariamos a 10 por ejemplo :D.....
Con esto tendriamos 10 consultas XD....






Eliminar un usuario

Por ultimo si ya no quisieramos usar ese usuario simplemente lo eliminamos :D
La sintaxis es la siguiente:

DROP USER user [, user] ...

DROP USER - indica que se va eliminar un usuario
user- es el nombre del usuario a eliminar
[,user] - es opcional podemos eliminar mas de un usuario

Veamos un ejemplo:

DROP user arthusuxd@localhost;


De esta forma he eliminado el usuario arthusuxd@localhost y puedo comprobarlo viendo el user,host desde mysql.user....

Espero que les haya gustado el minitutorial y esperen el proximo, jeje no habia tenido tiempo de postear algo asi que aqui esta :P XD