設定記錄行為

如要控管稽核記錄中記錄的 SQL 作業和資料庫物件,您可以在 AlloyDB for PostgreSQL 中設定 pgaudit.log 旗標或 pgaudit.role 旗標,設定 pgAudit 工作階段和物件記錄:

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

  • 設定 pgaudit.role 即可啟用及設定物件記錄,記錄會影響特定關係的記錄陳述式。將這個旗標設為角色名稱,然後將陳述式存取權授予要記錄的特定物件。對帳單存取權包括 SELECT、INSERT、UPDATE 和 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 的讀取和寫入稽核功能,請執行下列指令:

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

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

您可以為特定使用者啟用稽核功能,方法是在每個角色層級設定 pgaudit.log 旗標。

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

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

設定物件稽核記錄

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

例如:

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

您也可以稽核特定關係的部分資料欄。

例如:

  • 如要設定稽核記錄,使其僅在從薪資關係存取 income 和 tax_status 欄時產生,請執行下列操作:
    GRANT SELECT(income, tax_status) ON salary TO auditor;