
Anforderungen zur Überwachung der PostgreSQL-Datenbankaktivitäten

Einführung
PostgreSQL verarbeitet über 10.000 Transaktionen pro Sekunde in stark ausgelasteten Umgebungen. Jede Transaktion erfordert eine sorgfältige Überwachung. Eine kürzlich durchgeführte Studie zeigt, dass 60 % der Datenbankverletzungen auf unzureichende Überwachung zurückzuführen sind (eine Statistik von Verizon DBIR, 2023). Lassen Sie uns untersuchen, wie man eine umfassende Überwachung der PostgreSQL-Datenbankaktivitäten und Datenüberprüfungen implementiert.
Das Verständnis von Zugriffs- und Authentifizierungsüberwachung
PostgreSQL bietet robuste Werkzeuge zur Verfolgung des Benutzerzugriffs. So implementieren Sie die wesentliche Authentifizierungsüberwachung:
-- Aktive Sitzungen überwachen SELECT pid, usename, application_name, client_addr, backend_start, state, query FROM pg_stat_activity;
Pg_stat_activity enthält alle aktuellen und inaktiven Sitzungen:

Überwachen Sie die Sitzungsdauer der Benutzer wie folgt:
SELECT usename, count(*), avg(extract(epoch from now() - backend_start))::integer FROM pg_stat_activity GROUP BY usename;
Überwachung von Datenänderungen
Die Überwachung von Datenänderungen hilft, unbefugte Änderungen zu erkennen. Implementieren Sie diese Überwachungsmechanismen:
Erstellen Sie eine Audit-Trigger-Funktion
CREATE OR REPLACE FUNCTION audit_trigger_func() RETURNS trigger AS $$ BEGIN INSERT INTO audit_log( table_name, action, user_name, changed_fields, row_data ) VALUES ( TG_TABLE_NAME, TG_OP, current_user, row_to_json(NEW), row_to_json(OLD) ); RETURN NEW; END; $$ LANGUAGE plpgsql;
Wenden Sie den Trigger auf sensible Tabellen an
CREATE TRIGGER audit_trigger AFTER INSERT OR UPDATE OR DELETE ON sensitive_table FOR EACH ROW EXECUTE FUNCTION audit_trigger_func();
Bevor Sie den Audit-Trigger implementieren, ersetzen Sie ‘sensitive_table’ durch den tatsächlichen Namen der Tabelle, die Sie überwachen möchten. Während Trigger einen einfachen Ansatz zur Überprüfung bieten, können sie die Leistung in stark ausgelasteten Systemen beeinträchtigen und erfordern möglicherweise zusätzliche Wartung. Erwägen Sie die Verwendung spezieller Audit-Protokollierungslösungen wie pgAudit für Produktionsumgebungen.
Überwachung der Sicherheitskonfiguration
Verfolgen Sie sicherheitsbezogene Änderungen mit diesen Abfragen:
1. Überwachung von Rollenzuweisungen
SELECT rolname, rolsuper, rolcreaterole, rolcreatedb, rolcanlogin FROM pg_roles;
Dies kann die Zugriffs-Matrix wie folgt für unser lokales PostgreSQL zurückgeben:

2. Verfolgen von Berechtigungsänderungen.
SELECT grantor, grantee, table_schema, table_name, privilege_type FROM information_schema.role_table_grants;
3. Überprüfung der aktuellen Sicherheitseinstellungen.
SHOW all;
Sicherungs- und Wiederherstellungsoperationen
Implementieren Sie die Sicherungsüberwachung mit diesen Ansätzen:
-- Überwachung des WAL (Write-Ahead Log) Status SELECT * FROM pg_stat_wal; -- Überwachung der Sicherungshistorie SELECT start_time, end_time, success, database_name FROM pg_backup_history; -- Überprüfung des Replikationsstatus SELECT * FROM pg_stat_replication;
Überwachung der Abfrageaktivitäten
Überwachen Sie die Abfrageleistung und -muster:
-- Abfrageverfolgung aktivieren CREATE EXTENSION pg_stat_statements; -- Überwachung langlaufender Abfragen SELECT pid, age(clock_timestamp(), query_start), usename, query FROM pg_stat_activity WHERE state != 'idle' AND query_start < now() - interval '5 minutes'; -- Analyse der Abfragemuster SELECT query, calls, total_time, rows, mean_time FROM pg_stat_statements ORDER BY total_time DESC;
Überwachung von Systemereignissen
Verfolgen Sie kritische Systemereignisse:
-- Überwachung der Datenbankstatistiken (Backend, Transaktionsübersicht) SELECT datname, numbackends, xact_commit, xact_rollback, blks_read, blks_hit FROM pg_stat_database;
Dies führt zu folgendem Ausgabeergebnis:

Sie finden möglicherweise einige zurückgerollte Transaktionen (in diesem Fall 118).
-- Überprüfung der Tabellenstatistik SELECT schemaname, relname, seq_scan, seq_tup_read, idx_scan FROM pg_stat_user_tables;

Diese Abfrage hilft Ihnen, zu verstehen, wie effizient Ihre Tabellen abgerufen werden. Durch die Betrachtung der Häufigkeit von sequenziellen Scans im Vergleich zu Index-Scans können Sie Leistungsprobleme feststellen, wie z. B. Tabellen, die ohne Verwendung verfügbarer Indizes gescannt werden, was auf einen Bedarf an besserer Indizierung oder Abfrageoptimierung hinweisen kann.
-- Überwachung von Sperrkonflikten SELECT blocked_locks.pid AS blocked_pid, blocked_activity.usename AS blocked_user, blocking_locks.pid AS blocking_pid, blocking_activity.usename AS blocking_user FROM pg_locks blocked_locks JOIN pg_locks blocking_locks ON blocked_locks.locktype = blocking_locks.locktype AND blocked_locks.locktype = 'transactionid' AND blocked_locks.transactionid = blocking_locks.transactionid JOIN pg_stat_activity blocked_activity ON blocked_locks.pid = blocked_activity.pid JOIN pg_stat_activity blocking_activity ON blocking_locks.pid = blocking_activity.pid WHERE blocked_locks.granted = FALSE AND blocking_locks.granted = TRUE;
DataSunrise zur Überwachung der PostgreSQL-Datenbankaktivitäten
DataSunrise verbessert die Überwachung der Datenbankaktivitäten durch die Bereitstellung robuster Sicherheitsfunktionen, die konsistent über Dutzende unterstützter Datenbanken hinweg angewendet werden. Es bietet fünf flexible Einsatzmodi, die es Ihnen ermöglichen, eine Balance zwischen Datenbanklatenz, Funktionsumfang und den Auswirkungen auf die bestehende Infrastruktur zu finden.
Das Dashboard bietet eine umfassende Ansicht wichtiger Informationen über die überwachten und geschützten Datenbanken:

Alle geschützten Datenbanken sind auf der Seite „Datenbanken“ mit ihren Netzwerkkonfigurationen aufgeführt:

Schließlich werden alle überwachten Ereignisse einheitlich für alle Datenbanken in einem zentralen Ort dargestellt:

Über die reine Überwachung hinaus bietet DataSunrise fortschrittliche Datensicherheit, Erkennung sensibler Daten, automatisierte Compliance-Berichterstellung und Datenmaskierung. Unsere benutzerfreundliche, webbasierte Oberfläche enthält einen KI-gesteuerten Assistenten, der schnellen Zugriff auf Anleitungen und Referenzmaterialien zur nahtlosen Produktnutzung ermöglicht.
Zusammenfassung und Schlussfolgerungen
Eine effektive Überwachung von PostgreSQL erfordert einen umfassenden Ansatz, der alle Aspekte der Datenbankoperationen abdeckt. Regelmäßige Überwachung hilft dabei, die Sicherheit, Leistung und Zuverlässigkeit Ihrer Datenbanksysteme aufrechtzuerhalten.
DataSunrise PostgreSQL Sicherheit Lösung
DataSunrise bietet spezialisierte Werkzeuge zur Überwachung und Sicherheit von PostgreSQL. Unsere Lösung bietet Echtzeit-Überwachung der Aktivitäten, Compliance-Berichterstellung und fortschrittliche Sicherheitsfunktionen, die speziell für PostgreSQL-Datenbanken entwickelt wurden.
Erleben Sie die Leistungsfähigkeit von DataSunrise Sicherheitstools für PostgreSQL. Besuchen Sie unsere Website, um eine Online-Demo zu vereinbaren und herauszufinden, wie wir Ihre Datenbanksicherheitsinfrastruktur verbessern können.