Hoy os voy a enseñar la forma de sacar el listado de GRANTs de todos los usuarios de una base de datos mysql por consola de linux, el cual os puede ser muy util para scripts de backup.

El proceso es muy sencillo lo que se realiza es sacar por cada usuario de la base de datos un Show grants for .

 

mysql -u USUARIO -h HOST -p'PASSWORD' --silent --skip-column-names --execute 
   "select concat('show grants for ','\'',User,'\'@\'',Host,'\';') as User from mysql.db 
      where db in ('NOMBRE BASE DE DATOS')" | sort | while read u; do echo "-- $u"; 
      mysql -u USUARIO -h HOST -p'PASSWORD' --silent --skip-column-names --execute "$u" 
       | sed 's/$/;/'; done

 

Teneis que sustituir los valores en mayusculas  y ejecutando esto vamos a obtener por consola todo el listado ordenado por usuarios, de esta forma si tenemos que realizar copias periodicas de la base de datos pues tambien podemos añadir esta linea al script y tener la copia de todos los GRANT.


Compártelo:

FacebookTwitterDiggGoogle BookmarksLinkedIn

Daniel Romero Sanchez
Author: Daniel Romero Sanchez
Responsable de sistemas y Arquitecto Cloud - vExpert 2015/16 - VCP550-DCV - LPIC-1


Escribir un comentario

Código de seguridad
Refescar

DBigCloud en tu idioma

esenfrdeitptru

Gold Sponsor

 

vExpert 2017

DbigCloud newsletter

Suscribete a nuestra newsletter y recibe cada semana los mejores artículos seleccionados por DBigCLoud.
Email type
Please wait