設定記錄行為

如要設定 pgAudit 記錄行為,請設定 pgaudit.log 標記或 pgaudit.role 標記:

  • 設定 pgaudit.log 可啟用及設定工作階段記錄功能。您可以在執行個體、資料庫或角色上設定這個旗標,定義 pgAudit 記錄的作業範圍。您可以將這個旗標設為某個值,定義 pgAudit 記錄的作業類型。

  • 設定 pgaudit.role 來啟用及設定物件記錄,這會記錄影響特定關係的陳述式。您將這個旗標設為角色名稱,然後授予陳述式存取權給要記錄的特定物件。報表存取權包括 SELECT, INSERT, UPDATE, and DELETE。pgAudit 會記錄所有符合存取權和物件組合的操作,無論是由哪位使用者執行。

以下各節提供範例,說明如何設定 pgAudit 記錄行為的選項。

如要瞭解擴充功能的其他功能,請參閱 pgAudit 說明文件

為執行個體中的所有資料庫設定工作階段稽核記錄

如要為執行個體中的所有資料庫設定稽核,請在執行個體層級設定 pgaudit.log 旗標。

例如:

  • 如要為執行個體中所有資料庫的所有作業啟用稽核功能:
    gcloud alloydb instances update my-instance \
        --database-flags pgaudit.log=all[,flag2=value2...] \
        --region=us-central1 \
        --cluster=my-cluster \
        --project=my-project
    
  • 如要只針對執行個體中所有資料庫的讀取和寫入作業啟用稽核功能,請按照下列步驟操作:
    gcloud alloydb instances update my-instance \
        --database-flags=^:^pgaudit.log=read,write[:flag2=value2...] \
        --region=us-central1 \
        --cluster=my-cluster \
        --project=my-project
    

請注意,我們使用了替代分隔符號語法,因此您可以在旗標值中使用半形逗號。

如要瞭解如何設定資料庫旗標,請參閱「設定資料庫旗標」。

為特定資料庫設定工作階段稽核記錄

如要為特定資料庫設定稽核功能,請在資料庫層級設定 pgaudit.log 標記。

舉例來說,如要為資料庫「finance」啟用讀取/寫入稽核功能,請執行下列指令:

finance=> ALTER DATABASE finance SET pgaudit.log = 'read,write';

為單一使用者設定工作階段稽核記錄

您可以為特定使用者啟用稽核功能,方法是依角色層級設定 pgaudit.log

舉例來說,如要為使用者 Alice 執行的所有資料庫作業設定稽核,請執行下列指令:

finance=> ALTER ROLE alice SET pgaudit.log = 'all';

設定物件稽核記錄

關係的稽核範圍比特定資料庫的稽核範圍窄。稽核關係時,系統會為 pgaudit.role 參數指派專屬的稽核員角色。這項作業會記錄授予這個角色的任何物件或關係。

例如:

  • 如要為員工資料庫中薪資關係的所有 SELECT 查詢設定稽核,請執行下列步驟:
    employee=> CREATE ROLE auditor WITH NOLOGIN;
    employee=> ALTER DATABASE employee SET pgaudit.role = 'auditor';
    employee=> GRANT SELECT ON salary TO auditor;
    

您也可以稽核特定關係的資料欄子集。

例如:

  • 如要設定稽核記錄,只在從薪資關係存取 incometax_status 欄時記錄:
    employee=> GRANT SELECT(income, tax_status) ON salary TO auditor;