Cómo cambiar el privilegio a una tabla de MySQL

Por contributor
MySQL permite modificar la tabla de privilegios.
laptop with database record on 15.4" wide screen image by .shock from Fotolia.com

Habrá momentos en que varios usuarios necesiten acceder a la misma base de datos, entonces tendrás que cambiar los privilegios de la tabla de MySQL. Dependiendo de las necesidades del usuario, puedes proporcionar un acceso limitado o total a la base de datos. MySQL proporciona un mecanismo para poner en práctica este tipo de cambio en la tabla de privilegios con el comando GRANT.

Cambiar una tabla de privilegios de MySQL

Paso 1

Inicia una sesión como root u otro usuario administrador. Para utilizar el comando GRANT de MySQL, es necesario ser root u otro usuario con privilegios. Desde la línea de comandos del cliente de MySQL, conéctate a la base de datos como root. Ejemplo: mysql -u root -h localhost

Paso 2

Reemplaza localhost por el host de tu base, a menos que estés ejecutando el servidor MySQL en la misma computadora que estás utilizando. De lo contrario, utiliza el nombre de host del servidor MySQL. Ejemplo: mysql -u root -h localhost -p

Conceder privilegio 'Read'

Paso 1

Concede privilegios de lectura a un usuario si no necesita cambiar ningún dato. Por ejemplo, si el departamento de marketing quiere tener acceso a su base de datos de clientes, podrías brindarles acceso sólo de lectura a esta base de datos.

Paso 2

Logra esto con el comando GRANT de tres partes desde el usuario root. Para cambiar los privilegios, GRANT exige ejecutar el comando para quién tendrá privilegios de acceso a las bases de datos y tablas, y qué contraseñas se debería utilizar para iniciar sesión. En este ejemplo, el comando GRANT otorga permiso para utilizar el comando SELECT en todas las tablas de la base de datos customers_db. Se otorga permiso para el inicio de sesión del usuario 'marketing' desde 'localhost', quien se identifica con la contraseña 'some_password'. Ejemplo: GRANT SELECT ON customers_db.* TO 'marketing'@'localhost' IDENTIFIED BY 'some_password';'some_password';

Conceder privilegio 'Write'

Paso 1

Concede privilegios de escritura para el usuario. Este comando tiene la misma forma que la concesión de privilegios de lectura, pero agrega más comandos con SELECT.

Paso 2

Identifica qué tipo de privilegios necesitará el usuario. Aquí el comando concede el permiso del departamento de contabilidad para insertar y actualizar, así como seleccionar datos de las bases de datos de los clientes. Ejemplo: GRANT SELECT,INSERT,UPDATE ON customers_db.* TO 'accounting'@'localhost' IDENTIFIED BY 'some_password';

Conceder privilegio 'Admin'

Paso 1

Concede privilegios de administrador a un usuario. Este comando otorga permisos para ejecutar todos los comandos.

Paso 2

Utiliza este comando para dar a otros administradores un control total sobre una base de datos. Ejemplo: GRANT ALL PRIVILEGES ON customers_db.* TO 'admin'@'localhost' IDENTIFIED BY 'some_password'