Está en la página 1de 2

4.3.

Privilegios de usuarios
Una vez creados los usuarios ser necesario dotarlos de privilegios para que puedan realizar operaciones especficas en la base de datos. Estos privilegios suelen clasificarse en privilegios del sistema (operaciones que afectan a todo el sistema) y privilegios de objeto (tablas, vistas, etc.). Para conocer los privilegios y su sintaxis es necesario consultar los manuales de referencia de su SGBD.

SELECT * FROM system_privilege_map;


Las sentencias GRANT y REVOKE permiten a los administradores de SGBD crear cuentas de usuario, conceder y revocar derechos de esas cuentas.

GRANT CONNECT, RESOURCE, CREATE TABLE TO usuarioLimitado;


La informacin sobre cuentas MySQL se almacena en las tablas de la base de datos mysql. Los privilegios pueden ser concedidos en varios niveles: Nivel global Los privilegios globales se aplican a todas las bases de datos de un servidor dado. Estos privilegios se almacenan en la tabla mysql.user. GRANT ALL ON *.* y REVOKE ALL ON *.* concenden y revocan slo privilegios globales. Nivel de base de datos Los privilegios de base de datos se aplican a todos los objetos en una base de datos dada. Estos privilegios se almacenan en las tablas mysql.db y mysql.host. GRANT ALL ON db_name.* y REVOKE ALL ON db_name.* otorgan y revocan slo privilegios de base de datos. Nivel de tabla Los privilegios de tabla se aplican a todas las columnas de una tabla dada. Estos privilegios se almacenan en la tabla mysql.tables_priv. GRANT ALL ON db_name.tbl_name y REVOKE ALL ON db_name.tbl_name conceden y revocan nicamente privilegios de tabla. Nivel de columna Los privilegios de columna se aplican a una columna individual en una tabla dada. Estos privilegios se almacenan en la tabla mysql.columns_priv. Cuando se usa

REVOKE, se deben especificar las mismas columnas que cuando se concedieron los privilegios. Nivel de procedimiento Los privilegios CREATE ROUTINE, ALTER ROUTINE, EXECUTE y GRANT se aplican a procedimientos almacenados. Pueden ser concedidos en los niveles global y de base de datos. Adems, excepto para CREATE ROUTINE, estos privilegios pueden ser concedidos en el nivel de procedimiento para procedimientos individuales y se almacenan en la tabla mysql.procs_priv. Para hacer ms sencillo revocar todos los privilegios, MySQL aadido la siguiente sintaxis, que elimina todos los privilegios de los niveles de global, de base de datos, tabla y columna para los usuarios nombrados: mysql> REVOKE ALL PRIVILEGES, GRANT OPTION FROM usuario [, usuario] ... Asignar todos los privilegios menos los GRANT OPTION

GRANT ALL ON *.* TO miUsuario


Mostrar los privilegios del usuario