A nivel administrativo, nunca debería otorgar acceso para la
tabla mysql.user
a ninguna cuenta no
administrativa.
Cuando ejecuta un programa cliente para conectarse al servidor MySQL, es desaconsejable especificar la clave de manera que sea visible o posible de averiguar para otros usuarios. Los métodos que debe utilizar para especificar su clave cuando ejecuta programas clientes son enumerados aquí, junto con una valoración de los riesgos de cada método:
Utilice la opción
-p
o
your_pass
--password=
en la línea de comandos. Por ejemplo:
your_pass
shell> mysql -u francis -pfrank db_name
Esto es conveniente pero inseguro, porque la clave se vuelve visible para programas de consulta del estado del sistema, como ps que pueden ser invocados por otros usuarios para mostrar líneas de comando. Los clientes de MySQL normalmente sobreescriben el parámetro de la clave en la línea de comandos con ceros durante la secuencia de inicialización, pero aún así hay un breve intervalo de tiempo en que el valor es visible.
Utilice la opción -p
o
--password
sin especificar ningún valor
para la clave. En este caso, el programa cliente solicita la
clave desde el terminal:
shell> mysql -u francis -p db_name
Enter password: ********
Los caracteres '*
' indican donde se
introduce la clave. La clave no se muestra mientras se está
introduciendo.
Es más seguro introducir la clave de esta manera que especificarla en la línea de comandos, porque así no es visible a otros usuarios. No obstante, este método es tan solo aplicable para programas que se ejecutan de manera interactiva. Si quiere invocar un programa cliente desde un script que no se ejecute interactivamente, no hay oportunidad de introducir la clave mediante el terminal. En algunos sistemas, incluso podría darse que la primera línea del script sea leida e interpretada (incorrectamente) como la clave.
Almacene su clave en un archivo de opciones. Por ejemplo, en
Unix puede introducir su clave en la sección
[client]
del archivo
.my.cnf
de su directorio personal.
[client] password=your_pass
Si almacena su calve en .my.cnf
, el
archivo no debería ser accesible para nadie más que usted.
Para asegurarse de esto, establezca el modo de acceso del
archivo a 400
o 600
.
Por ejemplo:
shell> chmod 600 .my.cnf
Sección 4.3.2, “Usar ficheros de opciones” habla sobre los archivos de opciones con más detalle.
Almacene su clave en la variable de entorno
MYSQL_PWD
. Este método de especificar su
clave MySQL debe ser considerado extremadamente inseguro y
no debería ser utilizado. Algunas versiones de
ps incluyen una opción para mostrar las
varialbes de entorno de los procesos en ejecución. Si
establece MYSQL_PWD
, su clave estará
expuesta a cualquier otro usuario que ejecute
ps. Aún en sistemas con una versión tal
de ps, no es inteligente asumir que no
habrá cualquier otro método mediante el cual los usuarios
puedan examinar las variables de entorno. Consulte
Apéndice E, Variables de entorno.
De todas maneras, la manera más segura de hacerlo es, o bien hacer que el programa cliente pregunte por la clave, o especificarla en un archivo de opciones protegido.
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.