Professional Documents
Culture Documents
Para todas las conexiones, consultas, y otras operaciones que los usuarios
pueden intentar realizar, MySQL utiliza seguridad basada en Listas de Control de
Acceso (ACLs). También hay algún soporte para conexiones cifradas mediante
SSL entre clientes y servidores MySQL. Muchos de los conceptos que aquí se
exponen no son específicos de MySQL; las mismas ideas generales se pueden
aplicar a cualquier aplicación.
Lista de comprobaciones:
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
REVOKE priv_type [(column_list)] [, priv_type [(column_list)]] ...
ON [object_type] {tbl_name | * | *.* | db_name.*}
FROM user [, user] ...
Los permisos de base de datos se aplican a todos los objetos en una base
de datos dada. Estos permisos se almacenan en las tablas mysql.db y
mysql.host . GRANT ALL ON db_name.* y REVOKE ALL ON db_name.*
otorgan y quitan sólo permisos de bases de datos.
• Nivel de tabla
Los permisos de tabla se aplican a todas las columnas en una tabla dada.
Estos permisos se almacenan en la tabla mysql.tables_priv . GRANT ALL
ON db_name.tbl_name y REVOKE ALL ON db_name.tbl_name otorgan y
quian permisos sólo de tabla.
• Nivel de columna
• Nivel de rutina
Para usar GRANT o REVOKE, debe tener el permiso GRANT OPTION , y debe
tener los permisos que está dando o quitando.
Para hacer fácil de quitar todos los permisos, MySQL 5.0 tiene la siguiente
sintaxis, que borra todos los permisos globales, de nivel de base de datos y de
nivel de tabla para los usuarios nombrados:
REVOKE ALL PRIVILEGES, GRANT OPTION FROM user [, user] ...
Para usar esta sintaxis REVOKE , debe tener el permiso CREATE USER global o
el permiso UPDATE para la base de datos mysql .
Los únicos valores priv_type que puede especificar para una tabla son
SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, GRANT
OPTION, INDEX, y ALTER.
Los únicos valores priv_type que puede especificar para una columna
(cuando usa la cláusula column_list ) son SELECT, INSERT, y UPDATE.
Los únicos valores priv_type que puede especificar a nivel de rutina son
ALTER ROUTINE, EXECUTE, y GRANT OPTION. CREATE ROUTINE no
es un permiso de nivel de rutina porque debe tener este permiso para
ser capaz de crear una rutina en primer lugar.
Para los niveles global, base de datos, tabla y rutina, GRANT ALL asigna
sólo los permisos que existen en el nivel que está otorgándolos. Por
ejemplo, si usa GRANT ALL ON db_name.*, este es un comando de
nivel de base de datos, así que ninguno de los permisos únicamente
globales tales como FILE se otorgan.
SHOW PRIVILEGES
http://www.fbielma.org/conferencia/Jornadas-Regionales/MySQL-Security.pdf
http://dev.mysql.com/doc/refman/5.0/es/security-guidelines.html
http://dev.mysql.com/doc/refman/5.0/es/grant.html
http://www.itescam.edu.mx/principal/sylabus/rptSylabus.php?
tipo=PDF&id_asignatura=344&clave_asignatura=SCS-
0432&carrera=ISC0405001
INSTITUTO TECNOLOGICO DE TAPACHULA
SEGURIDAD DE MYSQL
5° SEMESTRE
TAPACHULA CHIAPAS A 03 DE JUNIO DEL 2010