script run descargar mysql shell command-line readonly

run - mysql connect command line linux



¿Cómo configuro MySQL temporalmente para solo lectura a través de la línea de comandos? (3)

Bueno, si el usuario ahora tiene todos los privilegios primero, necesita revocarlo

$>mysql -u DB_USER -pDB_PASS --execute="REVOKE ALL PRIVILEGES, GRANT OPTION FROM ''YOUR_USER'';"

Después de que le das, el permiso de selección

$>mysql -u DB_USER -pDB_PASS --execute="GRANT SELECT ON ''YOUR_DATABASE''@.* TO ''YOUR_USER''@''%'';FLUSH PRIVILEGES;"

Haz tus cosas y después otorga privilegios nuevamente al usuario.

$>mysql -u DB_USER -pDB_PASS --execute="GRANT ALL ON ''YOUR_DATABASE''@.* TO ''YOUR_USER''@''%'';FLUSH PRIVILEGES;"

Y eso es todo gente

NOTA: Revisión para cotización, tal vez se me olvidó algo

Estoy creando un script de bash que, entre otras cosas, recopila algunos datos de una base de datos MySQL. Mi usuario de MySQL tiene privilegios de escritura, pero por razones de seguridad me gustaría establecerlo temporalmente en un estado de solo lectura. ¿Es posible hacer esto desde una línea de comando?


Para responder a su pregunta original, puede poner toda su base de datos en modo de solo lectura con estos comandos:

FLUSH TABLES WITH READ LOCK; SET GLOBAL read_only = 1;

y volver al modo normal con:

SET GLOBAL read_only = 0; UNLOCK TABLES;

Tenga en cuenta que esta es una operación que tendrá un impacto profundo en el comportamiento de la base de datos. Entonces, antes de ejecutar esto, lea la documentación disponible de los comandos anteriores. Una forma mucho más común es revocar los privilegios DML del usuario específico y luego devolverlos.