Páginas

viernes, 14 de enero de 2011

Introduccion a MySQL DCL

Muy buen día tengan todos, en esta nueva entrada hablaremos del Lenguaje de Control de Datos ( DCL DATA CONTROL LENGUAGE) en MySQL, veremos la gestion de los usuarios los permisos que se otorgan a cada uno de ellos, entre algunas cosas.

Lenguaje de Control de Datos (DCL): Por medio de este lenguaje podemos controlar el acceso a la información de nuestra Base de Datos, proporcionando la seguridad de la misma, dandole integridad a nuestros datos.

Caracteristicas:
a) Garantiza la seguridad  de nuestros datos.


b) Previene el acceso ilegal a nuestros datos.

c)Monitorea el acceso a nuestros datos.

d)Especifica a cada usuario lo que puede realizar en nuestra base de datos.

Como podemos notar por medio de este lenguaje ofrecemos seguridad a la administración de nuestras base de datos, este lenguaje en MySQL esta conformado por dos comandos cuya sintaxis mostraremos a continuación

1.- GRANT: Se utiliza para darle permisos a un usuario en nuestra base de datos la sintaxis es la siguiente.

GRANT privilegios ON basededatos.tabla TO usuario IDENTIFIED BY 'contraseña del usuario';

Donde los privilegios pueden ser:

Privilegio Significado
ALL [PRIVILEGES] Da todos los permisos simples excepto GRANT OPTION
ALTER Permite el uso de ALTER TABLE
ALTER ROUTINE Modifica o borra rutinas almacenadas
CREATE Permite el uso de CREATE TABLE
CREATE ROUTINE Crea rutinas almacenadas
CREATE TEMPORARY TABLES Permite el uso de CREATE TEMPORARY TABLE

CREATE USER Permite el uso de CREATE USER, DROP
USER
, RENAME USER, y
REVOKE ALL PRIVILEGES.
CREATE VIEW Permite el uso de CREATE VIEW
DELETE Permite el uso de DELETE
DROP Permite el uso de DROP TABLE
EXECUTE Permite al usuario ejecutar rutinas almacenadas
FILE Permite el uso de SELECT ... INTO OUTFILE y
LOAD DATA INFILE

INDEX Permite el uso de CREATE INDEX y DROP
INDEX
INSERT Permite el uso de INSERT

LOCK TABLES Permite el uso de LOCK TABLES en tablas para las que
tenga el permiso SELECT
PROCESS Permite el uso de SHOW FULL PROCESSLIST

REFERENCES No implementado
RELOAD Permite el uso de FLUSH
REPLICATION CLIENT Permite al usuario preguntar dónde están los servidores maestro o
esclavo
REPLICATION SLAVE Necesario para los esclavos de replicación (para leer eventos del log
binario desde el maestro)
SELECT Permite el uso de SELECT

SHOW DATABASES
SHOW DATABASES muestra todas las bases de datos
SHOW VIEW Permite el uso de SHOW CREATE VIEW

SHUTDOWN Permite el uso de mysqladmin shutdown
SUPER Permite el uso de comandos CHANGE MASTER,
KILL, PURGE MASTER
LOGS
, and SET GLOBAL , el
comando mysqladmin debug le permite
conectar (una vez) incluso si se llega a
max_connections

UPDATE Permite el uso de UPDATE
USAGE Sinónimo de “no privileges
GRANT OPTION Permite dar permisos
Fuente: manual de MySQL

Además de los privilegios vemos que debemos indicar la base de datos sobre la cual se le otorgan los privilegios al usuario, si se coloca el * el cual es el selector universal se indica que sobre todas, tendremos varios casos:

a)El asterisco punto asterisco solo: Indicaríamos que el usuario tiene el privilegio indicado sobre todas las tablas y todas las base de datos. Ejemplo:

GRANT ALL PRIVILEGES ON *.* TO usuario IDENTIFIED BY 'contraseña';

b)Nombre de la base de datos seguido de punto(.) asterisco (*): Indicamos todas las tablas de esa base de datos.

GRANT ALL PRIVILEGES ON base_datos.* TO usuario IDENTIFIED BY 'contraseña';

c)Nombre de la base de datos seguido de punto(.) y nombre de la tabla: Indicamos a cual tabla en especifica se le darán los privilegios indicados.

GRANT ALL PRIVILEGES ON base_datos.tabla TO usuario IDENTIFIED BY 'contraseña';

Como se puede ver con el GRANT otorgamos privilegios a los usuarios desde nuestro usuario administrador ROOT de manera que solo tengan acceso a lo que el administrador del sistema indique.

2.-REVOKE: Es utilizado para quitarle o revocar los privilegios de un usuario en nuestras base de datos, la sintaxis es la siguiente:

REVOKE privilegios ON basedatos FROM usuario;

Donde los privilegios son igual que los establecidos en la tabla anterior, y la base de datos igualmente se le indica de la manera que se indico con el GRANT.

Como podemos observar el lenguaje DCL es importante en la Administración de nuestras base de datos ya que nos ayuda a mantenerlas seguras y tener control total sobre lo que los usuarios pueden o no hacer dentro de ella. Espero que el artículo sea de su agrado cualquier información extra pueden buscar como siempre indico en el manual de MySQL, tambien si existe sugerencias o algo que me alla faltado solo indiquenlo así aprendemos todos en el camino, me despido hasta una próxima entrada saludos


No hay comentarios:

Publicar un comentario