Administración de MySQL: cómo crear un usuario y definir sus derechos

Tabla de contenido:

Administración de MySQL: cómo crear un usuario y definir sus derechos
Administración de MySQL: cómo crear un usuario y definir sus derechos
Anonim

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.

mysql crear usuario
mysql crear usuario

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.
mysql crea un usuario y otorga derechos a la base de datos
mysql crea un usuario y otorga derechos a la base 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.

mysql crear usuario con todos los derechos
mysql crear usuario con todos los derechos

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.

mysql crear usuario para cualquier host
mysql crear usuario para cualquier host

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).

mysql crear usuario con todos los derechos
mysql crear usuario con todos los derechos

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.

mysql crear usuario para cualquier host
mysql crear usuario para cualquier host

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.

mysql crear usuario para cualquier host
mysql crear usuario para cualquier host

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.

Recomendado: