記錄與 pgaudit

稽核擴充 PostgreSQL 功能 (pgaudit) 可為您的 IBM Cloud® Databases for PostgreSQL 部署啟用工作階段記錄功能。 要檢視稽核記錄,請確保您已啟用 的記錄功能 Cloud Databases,並完成 建立 的 S2S 授權 步驟,以授予將記錄傳送至 的存取 IBM® Cloud Logs 權限。

會話記錄

預設情況下,會話日誌記錄處於關閉狀態。 您可以啟用會話日誌記錄參數來記錄審核事件類型集的所有活動。 會話日誌記錄針對整個資料庫叢集啟用,並且針對特定事件類型為 onoff

事件類型

會話日誌記錄是按事件類型配置的。 所有版本支援的事件類型有:

  • 函數
  • 角色
  • 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,但會停用 ddlrole

停用 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;