Anuncios

Bienvenidos sean a este post, hoy hablaremos sobre otra alterntativa para autenticarnos en el servidor.

Anuncios

Cuando hablamos de la creacion de usuarios en este post mencionamos que teniamos una opcion de poder utilizar complementos (plug-ins) de autenticacion, estos complementos pueden implementar diferentes metodos para ingresar o salir, esto esta pensado para evitar que se autentique desde un programa externo al servidor de mariadb, en la actualidad mariadb 10.0 viene con cuatro complementos de autenticacion:

  • mysql_native_password, es el complemento predeterminado
  • mysql_old_password, este utiliza la autenticacion de mysql 4.0 (no recomendable)
  • unix_socket, utiliza las credenciales del usuario de unix
  • pam, este complemento usa el Pluggable Authentication Modules (PAM) de Unix
Anuncios

Los tres primeros vienen instalados de manera predeterminada pero el ultimo no, para poder instalarlo debemos usar:

MariaDB [(none)]> install soname 'auth_pam';
Anuncios

Para poder verificar cuales son los complementos que tenemos activos podemos usar el siguiente comando:

MariaDB [(none)]> select plugin_name, plugin_status
    -> from information_schema.plugins
    -> where plugin_type = 'AUTHENTICATION';
Anuncios

Esto nos devolvera lo siguiente:

+-----------------------+---------------+
| plugin_name           | plugin_status |
+-----------------------+---------------+
| mysql_native_password | ACTIVE        |
| mysql_old_password    | ACTIVE        |
| unix_socket           | ACTIVE        |
| pam                   | ACTIVE        |
+-----------------------+---------------+
4 rows in set (0.004 sec)
Anuncios

Vamos a hacer un ejemplo para entenderlo, primero crearemos un usuario:

MariaDB [(none)]> create user user04@localhost 
    -> identified via 'mysql_native_password';
Anuncios

Este creara un usuario simple y como dato anecdotico aunque innecesario es agregado la forma de como se identificara dado que esta es la manera predeterminada y no es necesaria informarla, nuestro siguiente paso sera asignarles unos permisos mediante el siguiente comando:

MariaDB [(none)]> grant select on base1.*
    -> to user04@localhost identified via 'unix_socket';
Anuncios

Aqui le concederemos los permisos de SELECT a todas las tablas en la base1 y a su vez modificaremos la forma de identificarlo que ahora lo haremos via el complemento de unix, vamos a probar para ver que sucede si queremos ingresar con este usuario:

tinchicus@dbn001vrt:~$ mariadb -u user04
ERROR 1698 (28000): Access denied for user 'user04'@'localhost'
tinchicus@dbn001vrt:~$
Anuncios

Como pueden ver como lo hicimos con un usuario distinto al informado nos dice que tiene el acceso denegado, vamos a crear el usuario en Linux mediante adduser:

tinchicus@dbn001vrt:~$ sudo adduser user04
Anuncios

Deben completar unos pasos y podran crear un usuario, con su respectiva clave, les recomiendo ingresar con el usuario por primera vez, una vez hecho desde la terminal simplemente escriban mariadb y deberia suceder lo siguiente:

user04@dbn001vrt:~$ mariadb
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 68
Server version: 10.3.29-MariaDB-0+deb10u1-log Debian 10

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>
Anuncios

En cambio si lo hacemos desde otro usuario sucedera lo siguiente:

tinchicus@dbn001vrt:~$ mariadb -u user04 -p
Enter password: 
ERROR 1698 (28000): Access denied for user 'user04'@'localhost'
tinchicus@dbn001vrt:~$
Anuncios

Es decir que este usuario solamente podra ingresar cuando se hace con el mismo usuario que esta sincronizado, esta es una forma muy segura de poder segurizar una conexion pero esta fortaleza es su debilidad.

Anuncios
Nota: 
Por mas que usen la contraseña les dara el mismo error.
Anuncios

En resumen, hoy hemos visto los complementos para autenticarse en mariadb, cuales son, como se diferencian, como habilitar la faltante, un simple ejemplo de como crear un usuario y luego un usuario en Linux para ver como trabaja, espero les haya sido de utilidad sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.

Anuncios

Donación

Es para mantenimento del sitio, gracias!

$1.50