如要控管稽核記錄中記錄的 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;