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ómd5
per 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