Skip to content

Latest commit

 

History

History
188 lines (122 loc) · 5.82 KB

17_DBA_access.md

File metadata and controls

188 lines (122 loc) · 5.82 KB

Accesso al DBMS (Database Administrator - DBA)

Un DBA (Database Administrator) è responsabile della gestione, manutenzione e sicurezza del database in un'organizzazione. L'accesso al DBMS da parte del DBA è critico per garantire che il sistema funzioni correttamente e che i dati siano protetti.


Ruoli e responsabilità del DBA

  1. Gestione dell'accesso:

    • Creazione, modifica e revoca degli account utenti.
    • Gestione dei privilegi e delle autorizzazioni per garantire la sicurezza.
  2. Manutenzione del database:

    • Configurazione del database.
    • Esecuzione di aggiornamenti e patch.
  3. Sicurezza dei dati:

    • Implementazione di politiche di sicurezza per proteggere i dati da accessi non autorizzati.
    • Criptazione dei dati, se necessario.
  4. Backup e restore:

    • Pianificazione ed esecuzione di backup regolari.
    • Ripristino dei dati in caso di guasti o perdita.
  5. Ottimizzazione delle performance:

    • Monitoraggio e ottimizzazione delle prestazioni del database.
    • Analisi e ottimizzazione delle query.
  6. Monitoraggio e auditing:

    • Monitoraggio continuo delle operazioni del database.
    • Registrazione delle attività per scopi di audit e conformità.

Accesso al DBMS: Procedure e Strumenti

1. Accesso tramite console del DBMS

La maggior parte dei DBMS offre una console o un'interfaccia a riga di comando (CLI) per amministrare il sistema.

  • Esempio in MySQL:

    mysql -u root -p
    • -u root: Accede con l'utente root (DBA).
    • -p: Richiede la password.
  • Esempio in PostgreSQL:

    psql -U postgres

2. Accesso tramite strumenti grafici

Molti DBMS forniscono interfacce grafiche per semplificare la gestione.

  • SQL Server Management Studio (SSMS): Per SQL Server.
  • MySQL Workbench: Per MySQL/MariaDB.
  • pgAdmin: Per PostgreSQL.
  • Oracle SQL Developer: Per Oracle Database.

Questi strumenti consentono ai DBA di eseguire attività di amministrazione in un'interfaccia visiva intuitiva.

3. Accesso remoto

I DBA possono accedere al DBMS da remoto utilizzando protocolli sicuri, come SSH o VPN, per garantire la sicurezza.

  • Esempio per MySQL (connessione remota):

    mysql -h indirizzo_host -u root -p
    • -h indirizzo_host: Specifica l'indirizzo del server remoto.
  • Esempio con pgAdmin (PostgreSQL): Configurare il file pg_hba.conf per consentire l'accesso remoto.

4. Gestione dei privilegi e utenti

I DBA hanno il compito di gestire gli utenti e i loro privilegi di accesso.

  • Esempio per MySQL (creazione utente):

    CREATE USER 'utente'@'localhost' IDENTIFIED BY 'password';
    GRANT ALL PRIVILEGES ON NomeDatabase.* TO 'utente'@'localhost';
    FLUSH PRIVILEGES;
  • Esempio per PostgreSQL:

    CREATE ROLE utente WITH LOGIN PASSWORD 'password';
    GRANT ALL PRIVILEGES ON DATABASE NomeDatabase TO utente;

Sicurezza nell'accesso al DBMS

Per garantire un accesso sicuro, il DBA deve seguire best practice per la protezione del sistema:

  1. Autenticazione e gestione delle password:

    • Usare password complesse e cambiarle regolarmente.
    • Implementare l'autenticazione a due fattori (2FA), se supportato.
  2. Autorizzazione basata sui ruoli:

    • Assegnare i privilegi minimi necessari a ciascun utente (principio del privilegio minimo).
    • Creare ruoli specifici per compiti distinti.
  3. Crittografia dei dati:

    • Abilitare la crittografia delle connessioni (SSL/TLS).
    • Proteggere i dati sensibili memorizzati nel database.
  4. Audit delle attività:

    • Monitorare i log delle connessioni e delle attività del database.
    • Utilizzare strumenti di auditing per identificare accessi non autorizzati.

Configurazione tipica per il DBA

Un DBA deve configurare l'ambiente per garantire una gestione efficiente del DBMS.

1. Creazione di un utente DBA dedicato

  • È consigliabile non utilizzare l'account amministrativo predefinito (es. root o postgres) per le operazioni quotidiane. Creare un utente con privilegi elevati specificamente per il DBA.

    CREATE USER 'DBAuser'@'%' IDENTIFIED BY 'password_sicura';
    GRANT ALL PRIVILEGES ON *.* TO 'DBAuser'@'%';

2. Configurazione di politiche di accesso remoto

  • Consentire l'accesso remoto solo agli indirizzi IP autorizzati.
  • Configurare il firewall per bloccare connessioni non autorizzate.

Strumenti per il monitoraggio e la gestione del DBA

Un DBA utilizza diversi strumenti per monitorare e gestire il DBMS:

  1. Performance Monitoring:

    • MySQL Enterprise Monitor: Per monitorare il carico e le prestazioni.
    • pg_stat_activity (PostgreSQL): Per monitorare le attività delle query.
  2. Backup e Restore:

    • Utilizzare strumenti come mysqldump, pg_dump, e soluzioni di terze parti come Veeam o Percona Backup.
  3. Security Auditing:

    • SQL Server Audit Logs: Per tenere traccia delle attività degli utenti.
    • pgaudit (PostgreSQL): Per registrare eventi di sicurezza.

Esempio pratico: Gestione degli utenti

Creazione di un utente con accesso limitato (MySQL):

CREATE USER 'analista'@'localhost' IDENTIFIED BY 'password123';
GRANT SELECT, INSERT ON NomeDatabase.* TO 'analista'@'localhost';
FLUSH PRIVILEGES;

Revoca dei privilegi:

REVOKE INSERT ON NomeDatabase.* FROM 'analista'@'localhost';

Eliminazione di un utente:

DROP USER 'analista'@'localhost';

Conclusioni

L'accesso al DBMS da parte del DBA richiede competenze tecniche, una conoscenza approfondita del sistema e un forte orientamento alla sicurezza. Il DBA è la figura chiave per garantire che il database sia sicuro, performante e disponibile in ogni momento.