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 útil 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

 

Tenéis que sustituir los valores en mayúsculas  y ejecutando esto vamos a obtener por consola todo el listado ordenado por usuarios, de esta forma si tenemos que realizar copias periódicas de la base de datos pues también podemos añadir esta linea al script y tener la copia de todos los GRANT.

Si trabajáis con MySQL quizás os interese los siguientes posts:

Cómo securizar los accesos desde consola a MySQL

Error en MYSQL Incorrect key file for table /tmp/#sql_XXXX_X.MYI

Cómo exportar e importar en los principales motores base de datos

Cómo listar los GRANTs de todos los usuarios de una bbdd MYSQL

Como matar sesiones en MySQL usando pt-kill


Compártelo:

FacebookTwitterDiggGoogle BookmarksLinkedIn

Daniel Romero Sanchez
Author: Daniel Romero SanchezWebsite: https://www.dbigcloud.com
Responsable de sistemas y Arquitecto Cloud - vExpert 2015/19- VCP550-DCV - LPIC-1


Escribir un comentario

Código de seguridad
Refescar

DBigCloud en tu idioma

esenfrdeitpt

Gold Sponsor

 

vExpert 2020

DbigCloud newsletter

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