Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Można przeprowadzać inspekcję działań bazy danych w usłudze Azure Database for PostgreSQL przy użyciu rozszerzenia pgaudit.
pgaudit zapewnia szczegółowe rejestrowanie audytu sesji i obiektów.
Jeśli chcesz uzyskać dzienniki operacyjne na poziomie zasobów, takie jak skalowanie zasobów obliczeniowych i magazynowania, zobacz Dziennik aktywności platformy Azure.
Zagadnienia dotyczące użycia
Domyślnie pgaudit rejestruje komunikaty, a standardowy mechanizm rejestrowania PostgreSQL emituje zwykłe wpisy dziennika. W Azure Database for PostgreSQL można skonfigurować wszystkie dzienniki, które mają być wysyłane do magazynu dzienników Azure Monitor na potrzeby późniejszej analizy w Log Analytics. Jeśli włączysz rejestrowanie zasobów Azure Monitor, dzienniki są automatycznie wysyłane (w formacie JSON) do Azure Storage, usługi Event Hubs i dzienników Azure Monitor w zależności od wybranego wyboru.
Aby dowiedzieć się, jak skonfigurować rejestrowanie w dziennikach usługi Azure Storage, usługi Event Hubs lub usługi Azure Monitor, odwiedź sekcję dzienników zasobów w artykule dotyczącym dzienników serwera.
Instalowanie rozszerzenia
Aby użyć pgaudit rozszerzenia, dodaj do listy dozwolonych, załaduj i utwórz rozszerzenie w bazie danych, w której planujesz go używać.
Konfigurowanie ustawień rozszerzenia
pgaudit umożliwia skonfigurowanie rejestrowania inspekcji sesji lub obiektu.
Inspekcyjne rejestrowanie sesji emituje szczegółowe dzienniki wykonanych instrukcji.
Rejestrowanie inspekcji obiektów jest objęte inspekcją w zakresie określonych relacji. Możesz skonfigurować jeden lub oba typy rejestrowania.
Po włączeniu pgaudit skonfiguruj jego parametry, aby rozpocząć rejestrowanie.
Aby skonfigurować usługę pgaudit, wykonaj następujące instrukcje:
Użyj portalu Azure:
Wybierz swoją instancję serwera elastycznego Azure Database for PostgreSQL.
W menu zasobów w sekcji Ustawienia wybierz pozycję Parametry.
Wyszukaj te
pgauditparametry.Wybierz odpowiedni parametr do edycji. Aby na przykład rozpocząć rejestrowanie instrukcji
INSERT,UPDATE,DELETE,TRUNCATEiCOPY, ustaw wartośćpgaudit.lognaWRITE.Wybierz Zapisz, aby zapisać zmiany.
Oficjalna dokumentacjapgaudit zawiera definicję każdego parametru. Najpierw przetestuj parametry i upewnij się, że otrzymujesz oczekiwane zachowanie.
Na przykład ustawienie pgaudit.log_client tak, aby ON nie tylko zapisywało zdarzenia inspekcji w dzienniku serwera, ale także wysyła je do procesów klienta (takich jak psql). Ogólnie rzecz biorąc, pozostaw to ustawienie wyłączone.
Parametr pgaudit.log_level jest włączony tylko wtedy, gdy parametr pgaudit.log_client jest ustawiony jako włączony.
Na serwerze elastycznym Azure Database for PostgreSQL nie można ustawić pgaudit.log, używając skrótu w postaci znaku - (minus), zgodnie z opisem w dokumentacji pgaudit. Określ wszystkie wymagane klasy instrukcji (READ, WRITEitd.) pojedynczo.
Jeśli ustawisz parametr log_statement na DDL lub ALL i uruchomisz polecenie CREATE ROLE/USER ... WITH PASSWORD ... ; lub ALTER ROLE/USER ... WITH PASSWORD ... ;, PostgreSQL utworzy wpis w dziennikach PostgreSQL, w którym hasło zostanie zarejestrowane otwartym tekstem, co może stanowić potencjalne zagrożenie bezpieczeństwa. To zachowanie jest oczekiwane zgodnie z projektem aparatu PostgreSQL.
Można jednak użyć rozszerzenia pgaudit i ustawić pgaudit.log na DDL, co nie zapisuje żadnego polecenia CREATE/ALTER ROLE w dzienniku serwera Postgres, w przeciwieństwie do sytuacji, gdy ustawi się log_statement na DDL. Jeśli musisz rejestrować te instrukcje, możesz również ustawić pgaudit.log na ROLE, co ukrywa hasło w dziennikach przy jednoczesnym rejestrowaniu CREATE/ALTER ROLE.
Format dziennika inspekcji
Każdy wpis kontroli zaczyna się od AUDIT:. Format pozostałej części wpisu opisano szczegółowo w dokumentacjipgaudit.
Wprowadzenie
Aby szybko rozpocząć, ustaw wartość pgaudit.logALLi otwórz dzienniki serwera, aby przejrzeć dane wyjściowe.
Wyświetlanie dzienników inspekcji
Metoda uzyskiwania dostępu do dzienników zależy od wybranego punktu końcowego. Aby uzyskać informacje o koncie magazynu dzienników, zobacz artykuł dotyczący usługi Azure Storage. Aby dowiedzieć się więcej o strumieniowaniu dzienników Azure, zobacz artykuł o Event Hubs.
W przypadku dzienników Azure Monitor dzienniki są wysyłane do wybranego obszaru roboczego. Dzienniki PostgreSQL korzystają z trybu zbierania AzureDiagnostics, dzięki czemu można je odpytywać w tabeli AzureDiagnostics. Aby dowiedzieć się więcej na temat wykonywania zapytań i alertów, zobacz omówienie zapytania Azure Monitor Logs.
Możesz użyć tego zapytania, aby rozpocząć pracę. Alerty można skonfigurować na podstawie zapytań.
Wyszukaj wszystkie pgaudit wpisy w dziennikach bazy danych Postgres dla określonego serwera w ciągu ostatniego dnia.
AzureDiagnostics
| where Resource =~ "<flexible-server-name>"
| where Category == "PostgreSQLLogs"
| where TimeGenerated > ago(1d)
| where Message contains "AUDIT:"
Aktualizacja do nowej wersji głównej z zainstalowanym rozszerzeniem pgaudit
Podczas uaktualniania wersji głównej proces automatycznie usuwa rozszerzenie pgaudit, a następnie tworzy je ponownie po zakończeniu uaktualniania. Podczas przywracania rozszerzenia proces nie zachowuje automatycznie żadnych niestandardowych konfiguracji ustawionych w pgaudit.log ani innych powiązanych parametrów.