En aquest tema, explorarem els diferents mètodes d'autenticació disponibles a PostgreSQL. L'autenticació és un aspecte crucial de la seguretat de les bases de dades, ja que garanteix que només els usuaris autoritzats puguin accedir a les dades. PostgreSQL ofereix una varietat de mètodes d'autenticació per satisfer diferents necessitats de seguretat i entorns de desplegament.
Objectius d'aprenentatge
Al final d'aquest tema, hauràs après:
- Els diferents mètodes d'autenticació disponibles a PostgreSQL.
- Com configurar i utilitzar aquests mètodes.
- Avantatges i desavantatges de cada mètode d'autenticació.
Mètodes d'autenticació disponibles
- Autenticació per contrasenya (
password i md5)
password i md5)password: Aquest mètode utilitza contrasenyes en text pla. No és recomanable per a entorns de producció a causa de la manca de seguretat.md5: Utilitza un hash MD5 de la contrasenya. És més segur que el mètodepassword, però encara té vulnerabilitats conegudes.
Configuració:
- Autenticació basada en certificat SSL (
cert)
cert)Aquest mètode utilitza certificats SSL per autenticar els usuaris. És molt segur, ja que es basa en la criptografia de clau pública.
Configuració:
- Autenticació Kerberos/GSSAPI (
gss i sspi)
gss i sspi)gss: Utilitza el sistema de seguretat de serveis generals (GSSAPI) per a l'autenticació, sovint amb Kerberos.sspi: Similar agss, però per a sistemes Windows.
Configuració:
- Autenticació basada en IP (
trust i reject)
trust i reject)trust: Permet l'accés sense cap autenticació. Només és recomanable per a entorns de desenvolupament.reject: Rebutja totes les connexions. Pot ser útil per bloquejar l'accés a certs rangs d'IP.
Configuració:
- Autenticació basada en sistema operatiu (
peer i ident)
peer i ident)peer: Només per a connexions locals. Autentica els usuaris basant-se en el nom d'usuari del sistema operatiu.ident: Similar apeer, però pot utilitzar-se per a connexions remotes amb un servidorident.
Configuració:
- Autenticació LDAP (
ldap)
ldap)Utilitza un servidor LDAP per autenticar els usuaris. És útil en entorns empresarials on ja es fa servir LDAP per a la gestió d'usuaris.
Configuració:
# pg_hba.conf host all all 0.0.0.0/0 ldap ldapserver=ldap.example.com ldapbasedn="dc=example,dc=com"
Comparació de mètodes d'autenticació
| Mètode | Seguretat | Facilitat d'ús | Notes |
|---|---|---|---|
password |
Baixa | Alta | No recomanat per a producció |
md5 |
Mitjana | Alta | Millor que password, però amb vulnerabilitats |
cert |
Alta | Mitjana | Requereix configuració de certificats |
gss |
Alta | Mitjana | Ideal per a entorns amb Kerberos |
sspi |
Alta | Mitjana | Només per a Windows |
trust |
Nul·la | Alta | Només per a desenvolupament |
reject |
N/A | Alta | Bloqueja l'accés |
peer |
Alta | Alta | Només per a connexions locals |
ident |
Alta | Mitjana | Pot utilitzar-se per a connexions remotes |
ldap |
Alta | Mitjana | Ideal per a entorns empresarials |
Exercici pràctic
Configuració d'autenticació md5
-
Edita el fitxer
pg_hba.conf: Afegeix la següent línia per permetre l'autenticaciómd5per a totes les connexions:host all all 0.0.0.0/0 md5 -
Reinicia el servidor PostgreSQL:
sudo systemctl restart postgresql -
Crea un usuari amb contrasenya: Connecta't a PostgreSQL i crea un usuari amb una contrasenya:
CREATE USER testuser WITH PASSWORD 'testpassword'; -
Prova la connexió: Intenta connectar-te a PostgreSQL utilitzant l'usuari i la contrasenya creats:
psql -h localhost -U testuser -W
Solució
Si has seguit els passos correctament, hauries de poder connectar-te a PostgreSQL utilitzant l'usuari testuser i la contrasenya testpassword.
Resum
En aquest tema, hem explorat els diferents mètodes d'autenticació disponibles a PostgreSQL, incloent-hi password, md5, cert, gss, sspi, trust, reject, peer, ident i ldap. Hem vist com configurar cadascun d'aquests mètodes i hem discutit els seus avantatges i desavantatges. També hem realitzat un exercici pràctic per configurar l'autenticació md5.
En el proper tema, explorarem la encriptació de dades per assegurar la informació emmagatzemada a la base de dades.
Curs de PostgreSQL
Mòdul 1: Introducció a PostgreSQL
Mòdul 2: Operacions bàsiques de SQL
Mòdul 3: Consultes SQL avançades
Mòdul 4: Disseny de bases de dades i normalització
Mòdul 5: Funcionalitats avançades de PostgreSQL
Mòdul 6: Optimització i millora del rendiment
- Optimització de consultes
- Estratègies d'indexació
- Analitzant el rendiment de les consultes
- Vacuuming i manteniment
Mòdul 7: Seguretat i gestió d'usuaris
- Rols d'usuari i permisos
- Mètodes d'autenticació
- Encriptació de dades
- Còpia de seguretat i restauració
Mòdul 8: Treballant amb JSON i funcionalitats NoSQL
Mòdul 9: Extensions i eines avançades
- PostGIS per a dades geoespacials
- Cerca de text complet
- Wrappers de dades externes
- PL/pgSQL i altres llenguatges procedimentals
