如要設定 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;
您也可以稽核特定關係的資料欄子集。
例如:
- 如要設定稽核記錄,只在從薪資關係存取
income
和tax_status
欄時記錄:employee=> GRANT SELECT(income, tax_status) ON salary TO auditor;