本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
從稽核記錄中排除使用者或資料庫
如中所述的SQL數據庫日誌文件,Postgre SQL 日誌消耗存儲空間。根據您追蹤的變更,使用 pgAudit 擴充功能會增加記錄中收集的資料量,在不同程度上增加。您可能不需要稽核 中的每個使用者或資料庫。RDS對於後置SQL數據庫實例。
若要將對儲存的影響降到最低,並避免不必要地擷取稽核記錄,您可以將使用者和資料庫排除在稽核之外。您也可以在給定的工作階段中變更記錄。下列範例向您展示做法。
注意
參數群組中的設定。RDS SQL如果您不想要資料庫使用者略過稽核記錄組態設定,請務必變更其許可。
假設RDS適用於 Postgre SQL 資料庫執行個體的 Aurora Postgre SQL 資料庫已設定為稽核所有使用者和資料庫的相同活動層級。然後,您決定不想要稽核使用者 myuser
。您可以myuser
使用下列SQL命令關閉的稽核。
ALTER USER myuser SET pgaudit.log TO 'NONE';
然後,您可以使用下列查詢來檢查 pgaudit.log
的 user_specific_settings
欄,以確認參數已設定為 NONE
。
SELECT usename AS user_name, useconfig AS user_specific_settings FROM pg_user WHERE usename = 'myuser';
您會看到如下輸出。
user_name | user_specific_settings
-----------+------------------------
myuser | {pgaudit.log=NONE}
(1 row)
您可以使用下列命令,在資料庫的工作階段當中關閉特定使用者的記錄。
ALTER USER myuser IN DATABASE mydatabase SET pgaudit.log TO 'none';
使用下列查詢,針對特定使用者和資料庫組合檢查 pgaudit.log 的 settings 欄。
SELECT usename AS "user_name", datname AS "database_name", pg_catalog.array_to_string(setconfig, E'\n') AS "settings" FROM pg_catalog.pg_db_role_setting s LEFT JOIN pg_catalog.pg_database d ON d.oid = setdatabase LEFT JOIN pg_catalog.pg_user r ON r.usesysid = setrole WHERE usename = 'myuser' AND datname = 'mydatabase' ORDER BY 1, 2;
您會看到類似下列的輸出。
user_name | database_name | settings
-----------+---------------+------------------
myuser | mydatabase | pgaudit.log=none
(1 row)
在關閉 myuser
的稽核之後,您決定不想要追蹤 mydatabase
的變更。您可以使用下列命令來關閉該特定資料庫的稽核。
ALTER DATABASE mydatabase SET pgaudit.log to 'NONE';
然後,使用下列查詢來檢查資料庫特定設定資料行,以確認 pgaudit.log 已設定為。NONE
SELECT a.datname AS database_name, b.setconfig AS database_specific_settings FROM pg_database a FULL JOIN pg_db_role_setting b ON a.oid = b.setdatabase WHERE a.datname = 'mydatabase';
您會看到如下輸出。
database_name | database_specific_settings
---------------+----------------------------
mydatabase | {pgaudit.log=NONE}
(1 row)
若要將設定回復為 myuser 的預設設定,請使用下列命令:
ALTER USER myuser RESET pgaudit.log;
若要將設定回復為資料庫的預設設定,請使用下列命令。
ALTER DATABASE mydatabase RESET pgaudit.log;
若要將使用者和資料庫重設為預設設定,請使用下列命令。
ALTER USER myuser IN DATABASE mydatabase RESET pgaudit.log;
您也可以將 pgaudit.log
設定為 pgaudit.log
參數的其他允許值之一,將特定事件擷取至日誌。如需詳細資訊,請參閱允許的 pgaudit.log 參數設定清單。
ALTER USER myuser SET pgaudit.log TO 'read'; ALTER DATABASE mydatabase SET pgaudit.log TO 'function'; ALTER USER myuser IN DATABASE mydatabase SET pgaudit.log TO 'read,function'