Un rasgo característico de MySQL es su propia seguridad, apoyándose en protección externa. Como sistema de administración de bases de datos moderno, completo y eficiente, MySQL tiene sus propias herramientas para administrar usuarios y su acceso a los recursos que controla.
Si no conoce el nombre de usuario y la contraseña correctos, es muy difícil acceder a la base de datos a través de MySQL.
En el modo de alojamiento normal, esto es suficiente. Situaciones imprevistas, ataques de piratas informáticos y otros problemas son una cuestión de servicios de seguridad y administración del sistema externo. Este concepto se ha vuelto tradicional y prácticamente no se discute.
Instalar servidor MySQL y usuario root
En cualquier entorno operativo en el que esté instalado el sistema de gestión de base de datos, siempre tiene al menos un usuario: root. Instale MySQL, cree un usuario con todos los derechos de root; sin esto, trabaje conservidor no es posible. Los privilegios de este usuario son suficientes para:
- crear y administrar nuevos usuarios;
- crear y administrar bases de datos.
Es fundamentalmente posible que existan usuarios "sin contraseña" en MySQL, pero esto es inaceptable.
Práctica común:
- servidor instalado en la propia computadora, donde se puede instalar el alojamiento (opción local);
- el servidor está en alojamiento público en Internet.
En el primer caso, es posible trabajar con el servidor desde la línea de comandos y usar phpMyAdmin, en el segundo caso, solo phpMyAdmin o una herramienta similar, pero se puede acceder a la línea de comandos a través del acceso SSH remoto.
Herramientas de administración propias
El sentimiento de parentesco con la familia Unixoid y con el pasado de los servidores Apache es un sello distintivo de MySQL: crear usuario es una línea de comando con una sintaxis extraña. Para los profesionales que trabajan con Linux y sistemas similares, esto es tan familiar como increíble a los ojos de los usuarios de Windows que nunca han "entrado en la vida real".
La creación de un usuario comienza iniciando la línea de comandos del servidor. En un entorno Windows, esto se hace de la siguiente manera.
Primero (1) necesita ejecutar la línea de comando como administrador, luego vaya a la carpeta donde se encuentra MySQL (2), luegoiniciar el propio servidor (3):
mysql -u… -p
aquí "-u…" y "-p" son claves que apuntan al nombre "…"=root (u otro nombre) y su contraseña. En principio, un usuario no puede ser root, sino uno que tenga derechos de "root" (administrativo).
Importante: el servidor siempre se está ejecutando, aquí mysql -u… -p es el comando para acceder al servidor, no para iniciarlo.
En un entorno Linux y sistemas similares, dicho comando es una acción "nativa" y, como regla, se determina simplemente iniciando mysqld en el lugar correcto (en la ruta correcta), esto debe verificarse con el administrador. Por lo general, hay un nombre diferente aquí: no mysql, sino mysqld. También aquí, esta acción no siempre está disponible para todos los usuarios (del sistema operativo, no del servidor MySQL). A diferencia de Windows, en Linuxoids, el orden y la seguridad son un requisito natural e innegociable, que siempre se trata de manera civilizada.
En cualquier caso, una vez que mysql se haya iniciado, lo anunciará con un aviso (4):
mysql>
y será posible trabajar tanto con usuarios como con bases de datos.
Nota. Al instalar en un entorno de Windows, todo: Apache, MySQL, PHP, phpMyAdmin se puede configurar en rutas predeterminadas, pero se recomienda utilizar ubicaciones más compactas y cercanas para estas importantes herramientas:
- c:\SCiA\Apache;
- c:\SCiA\PHP;
- c:\SCiA\MySQL;
- …
- c:\SCiB\localhost\www\phpMyAdmin;
- c:\SCiB\sitio1\www;
- c:\SCiB\sitio2\www;
- …
- c:\SCiB\sitioN\www\.
Esta lógica no solo simplificará la administración, sino que también ampliará la capacidad del desarrollador para moverse entre versiones de productos y administrar su funcionalidad.
Trabajando en la línea de comandos de MySQL
Una vez que el servidor ha respondido y proporcionado su línea de comando, se pueden crear usuarios y asignarles permisos.
En este ejemplo, el comando de creación de usuario creó el usuario Petrov con la contraseña 123DFG. Si se comete un error al ingresar un comando, el servidor ofrece corregirlo, ¡pero es mejor nunca cometer errores cuando se trabaja en la línea de comandos!
El siguiente comando otorgar todos los privilegios otorga todos los derechos a todo. El comando de descarga se puede omitir, pero 'abre' el búfer de comandos, es decir, corrige su ejecución.
MySQL: crea un usuario y otorga derechos a la base de datos
Comando utilizado en el ejemplo:
CONCEDER TODOS LOS PRIVILEGIOS EN. A 'Petrov'@'localhost';
realmente otorga al usuario Petrov acceso a todas las bases de datos (primer asterisco) a todas las tablas (segundo asterisco).
Como regla general de MySQL, crear un usuario es:
GRANT [tipo de privilegio] ON [nombre de la base de datos].[nombre de la tabla] TO '[usuario]'@'localhost';
Se permiten los siguientes privilegios:
- TODOS LOS PRIVILEGIOS - todos los derechos.
- CREATE - derecho a crear nuevas tablas/bases de datos.
- DROP - el derecho a eliminar tablas/bases de datos.
- DELETE - el derecho a eliminar información en las tablas.
- INSERT - derecho a escribir información en las tablas.
- SELECT - derecho a leer la información de las tablas.
- ACTUALIZAR - el derecho a actualizar la información en las tablas.
- OPCIÓN DE CONCESIÓN: el derecho a trabajar con los privilegios de otros usuarios.
Desde un punto de vista práctico, en MySQL "crear un usuario" implica tres opciones de derechos:
- todos los derechos sobre todas las bases de datos y todos los usuarios;
- leer y escribir;
- solo lectura.
Rara vez se requieren otras opciones para otorgar derechos. En el entorno Linux, hay muchos más motivos para la libertad "legal" (y la necesidad), pero hay muchas más oportunidades que en Windows.
La operación inversa de MySQL "crear usuario" es eliminar.
soltar usuario 'Petrov'@'localhost';
Después de ejecutar este comando, Petrov dejará de ser un usuario y perderá sus privilegios. Para cambiar los privilegios, use el comando:
REVOKE [privilegio] EN [DB].[Table] TO '[usuario]'@'localhost';
La acción habitual en MySQL es crear un usuario o eliminarlo, pero cambiar los privilegios también es una operación válida (rara vez se solicita).
Uso de phpMyAdmin
Hay muchas implementaciones de esta maravillosa herramienta. Dependiendo de la versión de Apache, PHP y MySQL utilizada, a menudo lleva mucho tiempo encontrar la versión correcta de este producto, pero una vez que phpMyAdmin se instala con éxito, el usuario tiene muchas funciones convenientes y un cómodointerfaz.
Usando phpMyAdmin, puede decirle a MySQL que cree un usuario para cualquier host y administre los usuarios existentes de forma casi quirúrgica.
phpMyAdmin no es la única herramienta con una interfaz cómoda, intuitiva y rica en funciones, pero es la herramienta más popular para administrar servidores MySQL.
Acerca de la línea de comandos y la seguridad
Por supuesto, usar la línea de comandos de MySQL es un ejercicio poco atractivo, pero debe tenerse en cuenta que en algunos casos solo la línea de comandos del servidor puede guardar la base de datos o el usuario, asegurar la importación o exportación de información.
Las versiones de software están evolucionando tan rápido que los desarrolladores simplemente no tienen tiempo para combinar las características de, por ejemplo, PHP y MySQL, MySQL y phpMyAdmin. Si algo sucede, la línea de comando siempre salvará el día.
Nunca se debe olvidar: la administración de MySQL se trata solo de acceder a sus bases de datos ya través de su funcionalidad. Los archivos de la base de datos están abiertos para acceder fuera de MySQL. Asegurar externamente MySQL y los recursos que controla es una necesidad real e importante.