記錄與 pgaudit
稽核擴充 PostgreSQL 功能 (pgaudit) 可為您的 IBM Cloud® Databases for PostgreSQL 部署啟用工作階段記錄功能。 要檢視稽核記錄,請確保您已啟用 的記錄功能 Cloud Databases,並完成 建立 的 S2S 授權 步驟,以授予將記錄傳送至 的存取 IBM® Cloud Logs 權限。
會話記錄
預設情況下,會話日誌記錄處於關閉狀態。 您可以啟用會話日誌記錄參數來記錄審核事件類型集的所有活動。 會話日誌記錄針對整個資料庫叢集啟用,並且針對特定事件類型為 on 或 off。
事件類型
會話日誌記錄是按事件類型配置的。 所有版本支援的事件類型有:
- 函數
- 角色
- DDL
- 讀取
- 寫入
- MISC
- MISC_SET
- 無 (停用記錄)
如需相關資訊,請參閱 pgaudit。
啟用 pgaudit 會話記錄
若要啟用 pgaudit 會話記錄,請以管理員使用者身份連線,並在指定適當事件參數後呼叫 set_pgaudit_session_logging 函式。 會話日誌記錄直接在資料庫中啟用,不提供 API 或 CLI 存取。
例如,要啟用 DDL 和 ROLE,您可以呼叫:
SELECT public.set_pgaudit_session_logging(current_database(),'{ddl, role}');
您可以使用 dbname 代替 current_database() 函式指定資料庫。
啟用 pgaudit 使用者記錄
若要啟用 pgaudit 使用者記錄,請以管理員使用者身份連線,並在指定適當事件參數後呼叫 set_pgaudit_user_logging 函式。 針對特定使用者而非資料庫中的所有使用者啟用使用者記錄。
例如,若要啟用 READ 和 WRITE,請使用下列指令:
SELECT public.set_pgaudit_user_logging(<CREATED USER>,'{read, write}');
啟用 pgaudit 資料庫記錄
若要啟用 pgaudit 資料庫特定記錄,請以管理員使用者身份連線,並在指定適當事件參數後呼叫 set_pgaudit_database_logging 函式。 如果一個實例中有多個資料庫,資料庫記錄會針對特定資料庫啟用。
例如,要在 current_database 中啟用 DDL 和 ROLE,請使用下列指令:
SELECT public.set_pgaudit_database_logging(current_database(),'{ddl, role}');
或
SELECT public.set_pgaudit_database_logging('sampledatabase','{read, write, ddl}');
任何後續調用都會取代現有配置;它們不是添加劑。 例如,後續呼叫 SELECT public.set_pgaudit_session_logging('{misc}'); 只會記錄 misc,但會停用 ddl 和 role。
停用 pgaudit
若要停用稽核記錄,請在指定 none 的情況下呼叫相同的函式。 例如:
SELECT public.set_pgaudit_session_logging(current_database(),'{none}');
呼叫函數時會立即變更審核級別,而不會中斷資料庫活動。
審核日誌
稽核事件以下列格式出現在 IBM® Cloud Logs Routing:
LOG: AUDIT: SESSION,1,1,DDL,CREATE TABLE,,,create table f2 (id int);,<not logged>
如需更多資訊,請參閱 pgaudit 格式。
如果想查看目前日誌級別,可以執行以下命令:
show pgaudit.log;