共用方式為


適用於 PostgreSQL 的 Azure 資料庫中的稽核記錄

適用於 PostgreSQL 的 Azure 資料庫中資料庫活動的稽核記錄可透過延伸模組取得 pgauditpgaudit 提供詳細的工作階段和/或物件稽核記錄。

如果您想要 Azure 資源層級記錄來進行計算和儲存體調整等作業,請參閱 Azure 活動記錄

使用考量

根據預設, pgaudit logs 陳述式和一般記錄陳述式會使用 Postgres 的標準記錄功能發出。 在適用於 PostgreSQL 的 Azure 資料庫中,您可以設定要傳送至 Azure 監視器記錄存放區的所有記錄,以便稍後在 Log Analytics 中進行分析。 如果您啟用 Azure 監視器資源記錄,您的記錄會自動傳送至 (以 JSON 格式) 至 Azure 儲存體、事件中樞和/或 Azure 監視器記錄,視您的選擇而定。

若要瞭解如何設定 Azure 儲存體、事件中樞或 Azure 監視器記錄的記錄,請流覽 伺服器記錄一文的資源記錄一節。

安裝擴充功能

若要能夠使用 pgaudit 延伸模組,您必須在計畫使用它的資料庫中加入 允許清單載入建立 延伸模組。

設定擴充功能設定

pgaudit 可讓您設定工作階段或物件稽核記錄。 階段作業稽核記載 會發出已執行陳述式的詳細日誌。 物件稽核記載 的稽核範圍限定為特定關係。 您可以選擇設定一種或兩種類型的記錄。

啟用 pgaudit之後,您可以設定其引數以開始記錄。

若要設定 pgaudit,您可以遵循下列指示:

使用 Azure 入口網站

  1. 選取適用於 PostgreSQL 的 Azure 資料庫執行個體。

  2. 從資源功能表的 [設定] 底下,選取 [伺服器參數]。

  3. 搜尋 pgaudit 參數。

  4. 選擇適當的參數進行編輯。 例如,若要開始記載 INSERTUPDATEDELETETRUNCATECOPY陳述式,請設為 pgaudit.logWRITE

  5. 選取 [儲存] 按鈕以儲存變更。

pgaudit官方文件提供了每個參數的定義。 請先測試參數,並確認您取得預期的行為。

例如,設定 pgaudit.log_clientON 不僅會將稽核事件寫入伺服器日誌,還會將它們傳送至用戶端進程 (例如 psql)。 此設定通常應保持停用狀態。

pgaudit.log_level 僅在開啟時 pgaudit.log_client 啟用。

在適用於 PostgreSQL 的 Azure 資料庫中, pgaudit.log 無法使用 (減號) 捷徑進行 - 設定,如檔中 pgaudit 所述。 所有必要的陳述式類別 (READ 、 WRITE 等) 都應個別指定。

如果您將 log_statement 參數設定為 DDL or ALL 並執行 CREATE ROLE/USER ... WITH PASSWORD ... ; or ALTER ROLE/USER ... WITH PASSWORD ... ;, 命令,則 PostgreSQL 會在 PostgreSQL 日誌中建立專案,其中密碼會以純文字記錄,這可能會導致潛在的安全風險。 這是 PostgreSQL 引擎設計的預期行為。

不過, pgaudit 您可以使用副檔名並設定 pgaudit.logDDL,這不會在 Postgres 伺服器日誌中記錄任何 CREATE/ALTER ROLE 陳述式,這與您設定 log_statementDDL時不同。 如果您需要記錄這些陳述式,您也可以設定 pgaudit.logROLE,這會在記錄時 CREATE/ALTER ROLE從記錄檔中編輯密碼。

稽核記錄格式

每一個審核項目都以 開 AUDIT:頭。 其餘條目的格式詳見 的文件。pgaudit

入門指南

若要快速啟動,請設定 pgaudit.logALL,然後開啟伺服器日誌以檢閱輸出。

檢視稽核記錄

存取記錄的方式取決於您選擇的端點。 請參閱 Azure 儲存體的 記錄儲存體帳戶 一文。 請參閱事件中樞的 串流 Azure 記錄 一文。

針對 Azure 監視器記錄,記錄會傳送至您選取的工作區。 Postgres 記錄會使用 AzureDiagnostics 收集模式,因此可以從 AzureDiagnostics 資料表查詢。 在 Azure 監視器記錄 查詢概觀中深入瞭解查詢和警示。

您可以使用此查詢來開始使用。 您可以根據查詢設定警示。

pgaudit在最後一天搜尋特定伺服器的 Postgres 日誌中的所有項目

AzureDiagnostics
| where Resource =~ "<flexible-server-name>"
| where Category == "PostgreSQLLogs"
| where TimeGenerated > ago(1d)
| where Message contains "AUDIT:"

已安裝 pgaudit 擴充功能的主要版本升級

在主要版本升級期間,pgaudit 擴充功能會自動捨棄,然後在升級完成後重新建立。 還原延伸模組時,不會自動保留中設定 pgaudit.log 的任何自訂設定或其他相關參數。