Вы находитесь на странице: 1из 13

ADMINISTRACIN DE CUENTAS DE USUARIO

CONTENIDO: 1. 2. 3. 4. 5. 6. SISTEMA DE PRIVILEGIOS PRIVILEGIOS DE LOS QUE PROVEE MYSQL CREACIN DE CUENTAS DE USUARIO ASIGNAR CONTRASEAS ELIMINAR CUENTAS DE USUARIO LIMITAR RECURSOS DE CUENTAS

1. SISTEMA DE PRIVILEGIOS La funcin primaria del sistema de privilegios de MySQL es autenticar un usuario conectndose desde un equipo dado, y asociar dicho usuario con privilegios en una base de datos tales como SELECT, INSERT, UPDATE, y DELETE. El sistema de privilegios de MySQL asegura que todos los usuarios pueden ejecutar slo la operacin permitida. Como usuario, cuando conecta a un servidor MySQL, su identidad se determina mediante el equipo desde el que se conecta y el nombre de usuario que especifique. Cuando efecte peticiones tras conectar, el sistema le otorga privilegios acorde a su identidad y lo que quiera hacer. Etapa 1: El servidor comprueba si debe permitirle conectarse. Etapa 2: Asumiendo que se conecta, el servidor comprueba cada comando que ejecuta para ver si tiene suficientes permisos para hacerlo. Por ejemplo, si intenta seleccionar registros de una tabla en una base de datos o eliminar una tabla de la base de datos, el servidor verifica que tenga el permiso SELECT para la tabla o el permiso DROP para la base de datos. El servidor usa las tablas USER, DB, y HOST en la base de datos mysql en ambas etapas de control de acceso. Si desea ver la descripcin de la tabla USER digite: Mysql> describe mysql.user; En estas tablas se encuentran columnas de alcance, privilegios, seguridad, control de recursos. Las columnas de alcance de la tabla user (host, user y password) determinan si se rechazan o permiten conexiones entrantes. Para conexiones permitidas, cualquier privilegio otorgado en la tabla user indica los privilegios globales del usuario (superusuario). Estos privilegios se aplican a todas las bases de datos en el servidor. Si desea ver la descripcin de la tabla DB digite: Mysql> describe mysql.db; Se encuentran columnas de alcance y privilegios. Las columnas de alcance de la tabla db (host, db, user) determinan qu usuarios pueden acceder a qu bases de datos desde qu equipo. La columna de privilegios determina qu operaciones se permiten. Un privilegio otorgado a nivel de base de datos se aplica a la base de datos y a todas sus tablas.

Si desea ver la descripcin de la tabla HOST digite: Mysql> describe mysql.host; Pgina 1 de 13

Se encuentran columnas de alcance y privilegios. La tabla host se usa en conjuncin con la tabla db cuando desea que un registro de la tabla db se aplique a varios equipos. Por ejemplo, si quiere que un usuario sea capaz de usar una base de datos desde varios equipos en su red, deje el valor Host vaco en el registro de usuario de la tabla ddb , luego rellene la tabla host con un registro para cada uno de estos equipos. Durante la segunda etapa de control de acceso, el servidor efecta una verificacin de peticin para asegurar que cada cliente tiene suficientes privilegios para cada peticin que recibe. Adicionalmente a las tablas de permisos user, db, y host, el servidor puede consultar las tablas tables_priv y columns_priv para peticiones que impliquen tablas. Las tablas tables_priv y columns_priv proveen de un control de privilegios ms fino a nivel de tabla y columna. Mysql> describe mysql.tables_priv; Mysql> describe mysql. columns_priv; Para verificacin de peticiones que impliquen rutinas almacenadas, el servidor puede consultar la tabla procs_priv. Mysql> describe mysql. procs_priv; Las tablas tables_priv y columns_priv son similares a la tabla db , pero son ms detalladas: se aplican a nivel de tabla y de columna en lugar de a nivel de base de datos. Un privilegio otorgado a nivel de tabla se aplica a la tabla y a todas sus columnas. Un privilegio otorgado a nivel de columna se aplica slo a la columna especificada. La tabla procs_priv se aplica a rutinas almacenadas. Un privilegio otorgado a nivel de rutina se aplica slo a una nica rutina. Para determinar los permisos que se otorgan a una cuenta con valores por ejemplo la del root digite: mysql>show grants for root@localhost

Pgina 2 de 13

2. PRIVILEGIOS DE LOS QUE PROVEE MYSQL La informacin sobre los privilegios de las cuentas est almacenada en las tablas user, db, host, tables_priv, columns_priv, y procs_priv de la base de datos mysql. El servidor MySQL lee el contenido de estas tablas y lo almacena en memoria cuando se inicia, y lo relee cuando se ha realizado algn cambio dependiendo de las siguientes circunstancias: Si se han hecho cambios en los privilegios de tabla y columna los cambios toman efecto en la siguiente peticin del cliente. Si se han hecho cambios en privilegios de base de datos, estos toman efecto en la siguiente sentencia USE db_name. Si se han hecho cambios a los privilegios globales y las claves de acceso, lo cambios toman efecto la prxima vez que el cliente se conecte. Los nombres utilizados en las sentencias GRANT y REVOKE (sentencias para otorgar o negar privilegios a un usuario) para referirse a privilegios se muestran en la siguiente tabla, junto al nombre de columna asociado con cada privilegio en las tablas grant y el contexto en que el privilegio se aplica. PRIVILEGIO CREATE DROP GRANT OPTION REFERENCES ALTER DELETE INDEX INSERT SELECT UPDATE CREATE VIEW SHOW VIEW ALTER ROUTINE CREATE ROUTINE EXECUTE FILE CREATE TEMPORARY TABLES LOCK TABLES CREATE USER PROCESS RELOAD REPLICATION CLIENT REPLICATION SLAVE SHOW DATABASES SHUTDOWN SUPER CONTEXTO Bases De Datos, Tablas, O ndices Bases De Datos O Tablas Bases De Datos, Tablas, O Procedimientos Almacenados Bases De Datos O Tablas Tablas Tablas Tablas Tablas Tablas Tablas Vistas Vistas Procedimientos Almacenados Procedimientos Almacenados Procedimientos Almacenados Acceso a Archivos en la Mquina Servidor Administrador Del Servidor Administrador Del Servidor Administrador Del Servidor Administrador Del Servidor Administrador Del Servidor Administrador Del Servidor Administrador Del Servidor Administrador Del Servidor Administrador Del Servidor Administrador Del Servidor

Para crear o modificar procedimientos almacenados cuando el registro binario est activado, debe tambin tener el privilegio SUPER. Los privilegios CREATE y DROP permiten crear nuevas bases de datos y tablas, o eliminar las existentes. Los privilegios SELECT, INSERT, UPDATE, and DELETE permiten realizar operaciones en registros de tablas existentes en una base de datos.

Pgina 3 de 13

El privilegio INDEX permite crear o eliminar ndices. INDEX es aplicable a tablas existentes. Si tiene el privilegio CREATE para una tabla, entonces puede incluir definiciones de ndices en la sentencia CREATE TABLE. El privilegio ALTER permite utilizar ALTER TABLE para cambiar la estructura de o renombrar tablas. El privilegio CREATE ROUTINE es necesario para crear procedimientos almacenados (funciones y procedimientos). El privilegio ALTER ROUTINE se necesita para modificar o eliminar procedimientos almacenados, y EXECUTE es necesario para ejecutarlos. El privilegio GRANT permite dar a otros usuarios las privilegios que uno mismo posee. Puede ser utilizado para bases de datos, tablas, y procedimientos almacenados. El privilegio FILE otorga permiso para leer y escribir archivos en la mquina del servidor utilizando las sentencias LOAD DATA INFILE y SELECT ... INTO OUTFILE. El comando processlist muestra informacin sobre los subprocesos que se estn ejecutando en el servidor (es decir, sobre las sentencias que se estn ejecutando por parte de clientes asociados con otras cuentas). El privilegio CREATE TEMPORARY TABLES permite la utilizacin de la palabra clave TEMPORARY en sentencias CREATE TABLE. El privilegio LOCK TABLES permite la utilizacin de sentencias LOCK TABLES explcitas para bloquear tablas para las que tiene el privilegio SELECT. Esto incluye el uso de bloqueos de escritura, que evita que cualquier otra persona lea la tabla bloqueada. El privilegio REPLICATION CLIENT permite la utilizacin de las sentencias SHOW MASTER STATUS y SHOW SLAVE STATUS. El privilegio REPLICATION SLAVE debera otorgarse a cuentas que son utilizadas por servidores esclavos para conectarse al servidor actual como su maestro. Sin este privilegio, la cuenta esclava no puede pedir actualizaciones que se hayan hecho a las bases de datos del servidor maestro. El privilegio SHOW DATABASES permite a la cuenta ver los nombres de las bases de datos mediante la ejecucin de la sentencia SHOW DATABASE. En general, es una buena idea garantizar a una cuenta solo aquellos privilegios que necesita. Se debe tener especial cuidado en seguir esta regla con los privilegios administrativos y FILE: El privilegio FILE puede utilizarse inadecuadamente para introducir en una tabla de la base de datos cualquier archivo que el servidor MySQL sea capaz de leer en la mquina del servidor. Esto incluye todos los archivos que sean legibles para cualquiera, adems de los archivos almacenados en el directorio de datos del servidor. Esta tabla puede entonces ser accedida utilizando una sentencia SELECT para transferir sus contenidos a la mquina cliente. El privilegio GRANT permite a los usuarios otorgar sus mismos privilegios a otros usuarios. Dos usuarios con diferentes privilegios y con el privilegio GRANT pueden combinar sus privilegios.

Si otorga el privilegio DROP para la base de datos mysql a un usuario, ese usuario puede eliminar la base de datos en la que MySQL almacena los privilegios de acceso.

Pgina 4 de 13

El privilegio ALTER puede ser utilizado inadecuadamente para sabotear el sistema de privilegios mediante el renombrado de tablas. El privilegio SHUTDOWN puede utilizarse inadecuadamente para denegar el servicio a otros usuarios de manera total, cerrando el servidor. El privilegio PROCESS puede utilizarse para ver el texto de las consultas que se estn ejecutando actualmente, incluyendo consultas que establecen o modifican passwords. El privilegio SUPER puede utilizarse para cerrar la conexin a otros clientes o cambiar como el servidor funciona. Los privilegios otorgados para la propia base de datos mysql pueden utilizarse para cambiar passwords y otra informacin de privilegios de acceso. Las passwords se almacenan cifradas, as que un usuario malicioso no puede simplemente leerlas para conocer la password. An as, el usuario con privilegio de escritura a la columna Password de la tabla user puede cambiar la password de una cuenta, y seguidamente conectarse al servidor MySQL utilizando esa cuenta.

Pgina 5 de 13

3. CREACION DE CUENTAS DE USUARIO Una cuenta MySQL se define en trminos de un nombre de usuario y el equipo o equipos desde los que el usuario puede conectar al servidor. La cuenta tambin tiene una contrasea. Nombre de usuarios en MySQL pueden tener como mximo 16 caracteres de longitud. Este lmite est hard-codeado en los servidores y clientes MySQL, y tratar de evitarlo mediante la modificacin de las tablas en la base de datos mysql no funciona. Nota: Nunca debe alterar ninguna de las tablas en la base de datos mysql de ninguna forma excepto mediante la ejecucin de los scpripts proporcionados expresamente para este propsito con la distribucin MySQL. Tratar de redefinir las tablas de sistema MySQL de cualquier otra forma da como resultado un comportamiento indefinido (y no soportado). MySQL encripta contraseas usando su propio algoritmo. La encriptacin de contrasea es la misma que la implementada en la funcin PASSWORD(). Se puede crear cuentas MySQL de las siguientes formas: Usando comando GRANT Manipulando las tablas de permisos MySQL directamente PHPMyAdmin

a) b) c)

a) Usando comando GRANT El mtodo preferido es usar comandos GRANT, porque son ms concisos y menos propenso a errores. GRANT est disponible desde MySQL 3.22.11. Para crear una cuenta por medio del comando GRANT primero debe ingresar como ROOT a Mysql y digitar: mysql> GRANT ALL PRIVILEGES ON *.* TO 'usuario1'@'localhost' -> IDENTIFIED BY ' contrasea ' WITH GRANT OPTION; mysql> GRANT ALL PRIVILEGES ON *.* TO ''usuario1 '@'%' -> IDENTIFIED BY ' contrasea ' WITH GRANT OPTION; En este ejemplo se han creado dos cuentas que tienen como nombre de usuario: usuario1 y contrasea: contrasea. Ambas cuentas son cuentas de superusuario con plenos permisos para hacer cualquier cosa (ALL denota que se otorgan todos los permisos). Una cuenta ('nombre_usuario'@'localhost') puede usarse slo cuando se conecte desde el equipo local. La otra ('nombre_usuario'@'%') puede usarse para conectarse desde cualquier otro equipo. mysql> GRANT RELOAD,PROCESS ON *.* TO ' usuario2'@'localhost'; Esta cuenta creada tiene como nombre de usuario: usuario2 y no tiene contrasea. Esta cuenta puede usarse slo desde el equipo local. Tiene los privilegios administrativos RELOAD y PROCESS. stos permiten al usuario usuario1 ejecutar los comandos mysqladmin reload, mysqladmin refresh, y mysqladmin flush-xxx , as como mysqladmin processlist . No se dan permisos para acceder a ninguna base de datos. Puede aadir tal privilegio posteriormente mediante un comando GRANT adicional.

mysql> GRANT USAGE ON *.* TO 'usuario3'@'localhost'; Esta cuenta tiene como nombre de usuario: usuario3 sin contrasea. Esta cuenta puede usarse slo desde el equipo local. No tiene ningn privilegio. El permiso USAGE en el comando GRANT permite crear una cuenta sin darle ningn

Pgina 6 de 13

privilegio. Tiene el efecto de inicializar todos los privilegios globales a 'N'. Se asume que se otorgarn privilegios especficos posteriormente.

b) Manipulando las tablas de permisos MySQL directamente Como alternativa a GRANT, puede crear la misma cuenta directamente mediante comandos INSERT y despus diciendo al servidor que recargue las tablas de permisos usando FLUSH PRIVILEGES: Creacin de cuenta usuario1: mysql> INSERT INTO user -> VALUES('localhost','usuario1',PASSWORD('some_pass'), -> 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y'); mysql> INSERT INTO user -> VALUES('%','usuario1',PASSWORD('some_pass'), -> 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y'); Creacin de cuenta usuario2: mysql> INSERT INTO user SET Host='localhost',User='usuario2', Reload_priv='Y', Process_priv='Y';

Creacin de cuenta usuario3: mysql> INSERT INTO user (Host,User,Password) -> VALUES('localhost','usuario3',''); mysql> FLUSH PRIVILEGES; La razn de usar FLUSH PRIVILEGES al crear cuentas con INSERT es decir al servidor que vuelva a leer las tablas de permisos. De otro modo, los cambios no se tienen en cuenta hasta que se reinicie el servidor. Con GRANT, FLUSH PRIVILEGES no es necesario. La razn para usar la funcin PASSWORD() con INSERT es encriptar las contraseas. El comando GRANT encripta la contrasea, as que PASSWORD() no es necesario. El valor 'Y' activa permisos para las cuentas. Para la cuenta usuario2, puede emplear la sintaxis ms clara extendida INSERT usando SET. Las cuentas anteriormente creadas otorgan permisos para todas las bases de datos. Si queremos otorgar permisos sobre una base de datos especfica lo hacemos de la siguiente manera: El siguiente ejemplo crea un usuario con privilegios sobre la siguiente base de datos: Nombre de la base de datos: mi_base. Nombre de usuario: user1 Contrasea: secreto: Privilegios: select, insert,update. mysql> GRANT SELECT,INSERT,UPDATE ON mi_base.* -> TO 'user1'@'localhost' -> IDENTIFIED BY 'secreto'; Pgina 7 de 13

Esta cuenta tiene acceso a la base de datos mi_base solo desde el equipo local.

Para crear la misma cuenta utilizando el comando insert se hace lo siguiente: mysql> INSERT INTO user (Host,User,Password) -> VALUES('localhost',user1,PASSWORD('secreto'));

mysql> INSERT INTO db -> (Host,Db,User,Select_priv,Insert_priv, -> Update_priv,) -> VALUES('localhost','mi_base','user1', -> 'Y','Y','Y'); mysql> FLUSH PRIVILEGES; El primer comando INSERT aade registros en la tabla user que permiten al usuario USER1 conectarse desde el equipo local con la contrasea dada, pero no otorga privilegios globales (todos los privilegios se inicializan al valor por defecto 'N'). El segundo comandos INSERT aaden registros en la tabla db que otorgan privilegios a USER1 para la base de dato mi_base. Como siempre, cuando modifique las tablas de permisos directamente, debe decirle al servidor que las recargue con FLUSHPRIVILEGES para que los cambios en los permisos tengan efecto. c) PHPMyAdmin Al ingresar a PHPMyADMIN, ubicar el enlace PRIVILEGIOS que es donde se pueden administrar las cuentas de usuario en Mysql. Ver figura 1.

Figura 1. Entono PHPMyAdmin. Pgina 8 de 13

Al dar click en el enlace PRIVILEGIOS, aparece una ventana donde se visualizan los usuarios creados agrupados alfabticamente (solo aparece el ROOT) y las opciones para agregar nuevo usuario y eliminar usuarios. Ver figura 2.

Editar privilegios

Figura 2. Visualizacin usuarios Para visualizar los privilegios de un usuario determinado o para modificarlos, simplemente se va a la opcin EDITAR PRIVILEGIOS (ver figura 2). Aparecen todos los privilegios que se le pueden otorgar o denegar a un usuario y para hacerlos solamente se activa/desactiva la casilla de verificacin que acompaa a cada privilegio. Ver figura 3.

Figura 3. Privilegios de usuario.

Pgina 9 de 13

4. ASIGNAR CONTRASEAS Una parte del proceso de instalacin de MySQL es configurar la base de datos mysql, que contiene las tablas de permisos: Las distribuciones para Windows contienen tablas de permisos preinicializadas que se instalan automticamente. Las tablas de permisos definen las cuentas de usuario MySQL iniciales y sus permisos de acceso. Estas cuentas tienen la siguiente configuracin: Se crean dos cuentas con el nombre de usuario root. Son cuentas de superusuario que pueden realizar cualquier tarea. Inicialmente las cuentas root no tienen contraseas, de forma que cualquier persona puede conectarse al servidor MySQL como root sin una contrasea y recibir todos los privilegios. En Windows, una cuenta root sirve para conectarse desde el ordenador local (localhost) y la otra permite conectarse desde cualquier ordenador. Se crean dos cuentas de usuario annimo, cada una con un nombre de usuario vaco. Los usuarios annimos no tienen contrasea, de modo que cualquier persona puede usarlos para conectarse al servidor MySQL. En Windows, una cuenta annima es para conexiones desde el ordenador local. Tiene todos los privilegios, exactamente como la cuenta root. La otra sirve para conectarse desde cualquier ordenador y tiene todos los permisos sobre la base de datos test u otras cuyo nombre comience con test. Como se advierte, ninguna de las cuentas iniciales tiene contrasea. Esto significa que la instalacin de MySQL estar desprotegida hasta que: Se eliminen las cuentas annimas o se les establezca contraseas. Para asignar contrasea al root hacemos lo siguiente: Para verificar los usuarios que hay en la tabla USER: mysql>SELECT Host, User FROM mysql.user; Asignamos la contrasea: mysql>set password for root@localhost = PASSWORD(contrasea_nueva'); Otra forma es : mysql>UPDATE mysql.user SET Password = PASSWORD('contrasea_nueva') WHERE User = 'root'; mysql>FLUSH PRIVILEGES; Luego de actualizar las contraseas directamente en la tabla user empleando UPDATE, se le debe indicar al servidor que relea las tablas de privilegios con FLUSH PRIVILEGES. De otro modo, los cambios no tendrn efecto hasta que se reinicie el servidor.

Pgina 10 de 13

5. ELIMINAR CUENTAS DE USUARIO. El comando DROP USER borra una o ms cuentas MySQL . Para usarlo, debe tener el permiso global CREATE USER o el permiso DELETE para la base de datos mysql . Cada cuenta se nombra usando el mismo formato que para GRANT o REVOKE; por ejemplo, 'usuario1'@'localhost'. Las partes de usuario y equipo del nombre de cuenta se corresponden a las columnas User y Host del registro de la tabla user para la cuenta. DROP USER como est en MySQL 5.0.0 y 5.0.1 borra slo cuentas que no tienen permisos. En estas versiones MySQL slo sirve para borrar cada registro de cuenta de la tabla user . Para borrar una cuenta MySQL completamente (incluyendo todos sus permisos), debe usar el siguiente procedimiento, realizando estos pasos en el orden mostrado: 1. Use SHOW GRANTS para determinar los permisos que tiene la cuenta. 2. Use REVOKE para revocar los permisos mostrados por SHOW GRANTS. Esto borra registros para la cuenta de todas las tablas de permisos excepto la tabla user , y revoca cualquier permiso global listado en la tabla user. 3. Borre la cuenta usando DROP USER para borrar el registro de la tabla user . DROP USER no cierra automticamente ninguna sesin de usuario. En lugar de ello, en el evento que un usuario con una sesin abierta se elimina, el comando no tiene efecto hasta que se cierra la sesin de usuario. Una vez se ha cerrado, el usuario se borra, y el prximo intento de logueo del usuario fallar. En el siguiente ejemplo se va eliminar un usuario llamado USER1 que tiene como contrasea PASSWORD y los privilegios SELECT,INSERT,UPDATE. 1. Verificamos los permisos: mysql>show grants for user1@localhost; 2. Revocamos los permisos: mysql>revoke select, insert, update on *.* from user1@localhost; 3. Borramos el usuario: mysql>drop user user1@localhost;

Pgina 11 de 13

6. LIMITAR RECURSOS DE CUENTAS Una forma de limitar los recursos de los servidores MySQL es asignar a la variable de sistema max_user_connections un valor distinto de cero. Sin embargo, este mtodo es estrictamente global, y no est permitido para la administracin de cuentas individuales. Adems, limita slo el nmero de conexiones simultneas hechas usando una sola cuenta, y no lo que un cliente puede hacer una vez conectado. Ambos tipos de control son interesantes para muchos administradores de MySQL, particularmente aquellos que trabajan en ISPs (Proveedores de Servicio de Internet). En MySQL 5.0, puede limitar los siguientes recursos de servidor para cuentas individuales: El nmero de consultas que una cuenta puede realizar por hora El nmero de actualizaciones que una cuenta puede hacer por hora El nmero de veces que una cuenta puede conectar con el servidor por hora Cualquier comando que un cliente puede realizar cuenta en el lmite de consultas. Slo los comandos que modifiquen la base de datos o las tablas cuentan en el lmite de actualizaciones. Desde MySQL 5.0.3, es posible limitar el nmero de conexiones simultneas al servidor por cuenta. Una cuenta en este contexto es un registro en la tabla user. Cada cuenta se identifica unvocamente por los valores de las columnas User y Host. Como prerrequisito para usar esta caracterstica, la tabla user en la base de datos mysql debe contener las columnas relacionadas con el recurso. Los lmites de recursos se guardan en las columnas max_questions max_updates, max_connections max_user_connections. Para cambiar el lmite de recursos con un comando GRANT use la clusula WITH que nombra cada recurso a ser limitado y un contador por hora indicando el valor lmite. Por ejemplo, para crear una nueva cuenta que pueda acceder a la base de datos mi_base, pero slo de forma limitada, utilice este comando: mysql> GRANT ALL ON customer.* TO 'usuarioN'@'localhost' -> IDENTIFIED BY 'password' -> WITH MAX_QUERIES_PER_HOUR 20 -> MAX_UPDATES_PER_HOUR 10 -> MAX_CONNECTIONS_PER_HOUR 5 -> MAX_USER_CONNECTIONS 2; No todos los tipos de lmites necesitan nombrarse en la clusula WITH, pero los nombrados pueden presentarse en cualquier orden. El valor para cada lmite por hora debe ser un entero representando el contador por hora. Si el comando GRANT no tiene clusula WITH, los lmites se inicializan con el valor por defecto de cero (o sea, sin lmite). Para MAX_USER_CONNECTIONS, el lmite es un entero indicando el mximo nmero de conexiones simultneas que la cuenta puede hacer en cualquier momento. Si el lmite asignado es el valor por defecto de cero, la variable de sistema max_user_connections determina el nmero de conexiones simultneas para la cuenta. Para inicializar o cambiar los lmites de una cuenta existente, use un comando GRANT USAGE a nivel global. Por Ejemplo, si queremos cambiar el lmite de consultas para USER1 a 100 escribimos lo siguiente: mysql> GRANT USAGE ON *.* TO user1@'localhost' -> WITH MAX_QUERIES_PER_HOUR 100; Pgina 12 de 13

Este comando deja los permisos existentes de la cuenta inalterados y modifica slo los valores cuyo lmite se especifica. Para eliminar un lmite existente, ponga su valor a cero. Por ejemplo, para eliminar el lmite de cuantas veces por hora puede conectar USER1 , escribimos lo siguiente: mysql> GRANT USAGE ON *.* TO user1@'localhost' -> WITH MAX_CONNECTIONS_PER_HOUR 0;

El conteo del uso de recursos toma lugar cuando una cuenta tiene un lmite distinto a cero para el uso de cualquier recurso. Mientras el servidor est en ejecucin, cuenta el nmero de veces que cada cuenta usa los recursos. Si una cuenta llega a su lmite en el nmero de conexiones en la ltima hora, se rechazan cualquier intento de conexin mientras dure la hora. De forma similar, si la cuenta llega a su lmite de consultas o actualizaciones, consultas o actualizaciones adicionales se rechazan mientras dure la hora. En cualquier caso, se muestra el mensaje de error apropiado. El conteo de recursos se hace por cuenta, no por cliente. Por ejemplo, si una cuenta tiene un lmite de 50 consultas, no puede incrementar el lmite a 100 haciendo dos conexiones simultneas al servidor. Las consultas de ambas conexiones se cuentan juntas. Todos los contadores empiezan a cero cuando el servidor arranca; los contadores no se guardan al reiniciar.

Pgina 13 de 13