GaussDB 數據庫架構師修煉(十三)安全管理(3)-數據庫審計

1 數據庫審計作用

數據庫審計機制主要通過對SQL操作或其他操作記錄審計日志的方式?,增強數據庫系統對非法操作的追溯及舉證能力?。高斯數據庫提供兩種審計特性?:傳統審計?,統一審計。

2?傳統審計

傳統審計通過GUC參數配置需要對數據庫的哪些操作進行審計,并通過將審計記錄寫入OS文件中(即審?計日志)的方式來保存審計結果?。傳統審計特性提供SQL函數接口以供審計管理員查詢/刪除審計記錄。

3?統一審計

統一審計通過定制化審計策略來實現高效安全審計?。管理員可以對數據庫中某特定對象(模式//列)打 資源標簽,并針對特定資源標簽過濾條件創建審計策略DDL/DML)。?當用戶執行的任務符合創建的??審計策略時,則數據庫會記錄下相應的行為并生成審計日志。

??統一審計通過將審計記錄發送至本地rsyslogElastic?Search服務端來保存審計結果?。管理員可到對應的?日志存儲端查看日志。

4 傳統審計配置管理-審計配置項開關

傳統審計可以記錄用戶對數據庫的啟停?連接?DDL?DML?DCL等操作,通過GUC參數開關控制對哪些操作進行審計。

1)?提供審計總開關參數audit_enabled,參數支持動態加載,在數據庫運行期間修改該配置項的值會立即生效?,無需重啟數?據庫?。默認值為on,表示開啟審計功能。

2) 除了審計總開關,各個審計項也有對應的開關?。只有開關開啟,對應的審計功能才能生效。各審計項的開關支持動態加載?。在數據庫運行期間修改審計項參數的值,不需要重啟數據庫便可生效?。提供的審計配置項?開關見下頁表格。

3)?審計總開關參數修改:

開啟?

gs_guc?set?-Z?coordinator?-Z?datanode?-N?all?-I?all?-c?"audit_enabled?=?on"

關閉?

???????gs_guc?set?-Z?coordinator?-Z?datanode?-N?all?-I?all?-c?"audit_enabled?=?off"

審計項修改?,以SELECT操作審計項參數audit_dml_state_select為例:

開啟SELECT操作審計:

gs_guc?set?-Z?coordinator?-Z?datanode?-N?all?-I?all?-c?"audit_dml_state_select?= ?1"?

關閉SELECT操作審計:

gs_guc?set?-Z?coordinator?-Z?datanode?-N?all?-I?all?-c?"audit_dml_state_select?= ?0"

?5 傳統審計配置管理-審計配置項參

配置項審計開關描述默認值
用戶登錄、注銷審計audit_login_logout表示開啟用戶登錄、退出的審計功能。設置為0?? 表示關閉用戶登錄、退出的審計功能。不推薦設 置除0和7之外的值7
數據庫啟動、停止、恢復和切換審計audit_database_process表示開啟數據庫啟動、停止、恢復和切換的審計 功能1
用戶鎖定和解鎖審計audit_user_locked表示開啟審計用戶鎖定和解鎖功能1
用戶訪問越權審計audit_user_violation表示關閉用戶越權操作審計功能0
授權和回收權限審計audit_grant_revoke表示開啟審計用戶權限授予和回收功能1
對用戶操作進行全量審計full_audit_users表示采用默認配置,未配置全量審計用戶空字符串
不需要審計的客戶端名稱及IP地址no_audit_client表示采用默認配置,未將客戶端及IP加入審計黑 名單。空字符串
數據庫對象的CREATE,ALTER, DROP操作審計audit_system_object表示只對DATABASE 、SCHEMA 、USER 、 DATA SOURCE 、NODE? GROUP這五類數據庫對象的??? CREATE 、ALTER 、DROP操作進行審計67121159
具體表的INSERT 、 UPDATE和DELETE操 作審計audit_dml_state表示關閉具體表的DML操作(SELECT除外)審計 功能0
SELECT操作審計audit_dml_state_select表示關閉SELECT操作審計功能0
COPY審計audit_copy_exec表示打開COPY操作審計功能1
存儲過程和自定義函數的執行 審計audit_function_exec表示不記錄存儲過程和自定義函數的執行 審計日志0
SET審計audit_set_parameter表示記錄SET操作審計日志1
執行白名單內的系統函數審計audit_system_function_ exec表示不記錄執行系統函數的審計日志0
事務ID記錄audit_xid_info表示關閉審計日志記錄事務ID功能0
內部工具連接及操作審計、DN上對來自CN的登入登出審 計audit_internal_event表示不對內部工具cm_agent 、gs_clean 、 WDRXdb的登入登出及操作進行審計、 DN 上不對來自CN的登入登出進行審計off

6 傳統審計-SQL函數接口

1) 用戶可以通過數據庫提供的SQL函數接口查看和刪除審計日志。

2)查看、刪除審計日志需要具有AUDIT??ADMIN屬性(審計管理員)的用戶或初始用戶進行操作。

接口原型參數返回值使用示例
pg_query_audit(timestamptz startime,timestamptz
endtime,audit_log) ;
starttime:查看審計記錄的開始時間
endtime:查看審計記錄的結束時間
audit_log: 所查看的審計日志信息所在 的物理文件路徑
見下表查看2024-03-06 00:00:00至2024-03-06? 12:00:00時間段內audit_user用戶 的SELECT操作審計記錄,并按時間排序:
select * from pg_query_audit('2024-03-06 00:00:00','2024-03-06
12:00:00') where type = 'dml_action_select' and username = 'audit_user' order by time desc;
pg_delete_audit(timestamptz startime,timestamptz
endtime) ;
starttime:刪除審計記錄的開始時間
endtime:刪除審計記錄的結束時間
刪除2024-03-06 00:00:00至2024-03-06? 12:00:00時間段內的審計記錄: select * from pg_delete_audit('2024-03-06 00:00:00','2024-03-06
12:00:00');

7?傳統審計-日志管理策略

1)數據庫提供配置項供用戶配置審計日志的管理策略:比如審計日志存放路徑等,審計記錄占用空?間大小限制,審計文件個數限制,單個審計文件大小限制等,具體見下表。

2)數據庫會根據審計日志管理配置項參數,對審計日志進行管理。

配置項

含義

默認值

audit_directory

審計文件的存儲目錄

$GAUSSLOG/pg_audit

audit_rotation_interval

創建一個新審計日志文件的時間間隔,當距離上次創建一個審計 日志的時間超過了此參數值時,將生成一個新的審計日志文件

1天

audit_rotation_size

審計日志文件的最大容量。當審計日志消息的總量超過此參數值 時,將生成一個新的審計日志文件

10MB

audit_resource_policy

審計日志的保存策略
on:表示采用空間優先策略,最多存儲audit_space_limit大小的 日志。
off:表示采用時間優先策略,最少存儲audit_file_remain_time 長度時間的日志

on

audit_space_limit

審計文件占用的磁盤空間總量

1GB

audit_file_remain_time

審計日志文件的最小保存時間。

90

audit_file_remain_threshold

審計目錄下審計文件的最大數量

1048576

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/93501.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/93501.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/93501.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C語言(11)—— 數組(超絕詳細總結)

Hi!冒險者😎,歡迎闖入 C 語言的奇幻異世界🌌! 我是 ankleless🧑?💻,和你一樣的闖蕩者~ 這是我的冒險筆記打怪升級之路——C語言之路📖,里面有踩過…

【AI生成+補充】高頻 hql的面試問題 以及 具體sql

以下是高頻HQL面試題及對應SQL示例,涵蓋核心語法、優化技巧和典型場景,可直接用于面試準備: 一、基礎操作與DDL 1. 創建分區表 & 動態插入分區 sql -- 創建外部分區表(按日期分區) CREATE EXTERNAL TABLE logs…

開源 Arkts 鴻蒙應用 開發(十七)通訊--http多文件下載

文章的目的為了記錄使用Arkts 進行Harmony app 開發學習的經歷。本職為嵌入式軟件開發,公司安排開發app,臨時學習,完成app的開發。開發流程和要點有些記憶模糊,趕緊記錄,防止忘記。 相關鏈接: 開源 Arkts …

Cloudflare Tunnel 使用SAAS回源加速配置教程

在使用 Cloudflare Tunnel 時,通過“主域名+加速域名”的聯動配置,既能隱藏內網 IP,又能優化訪問速度。本文以實際部署場景為例(主域名 zhuyuming.dpdns.org、加速域名 jiasu.dpdns.org),帶你一步步完成內網服務穿透(以 192.168.1.6:5555 網頁服務為例),實操性強,可直…

C++實戰

Ref deepwiki vuecruddllamma.cpp 目標 計劃實現一個C項目,前端用vue,后端用C和llama.cpp。實現可以進行邏輯功能和AI推理。

dify 調用本地的 stable diffusion api生成圖片的工作流搭建

Dify調用本地Stable Diffusion API的工作流搭建指南 核心架構 #mermaid-svg-ce029i4XFKrDzRgU {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-ce029i4XFKrDzRgU .error-icon{fill:#552222;}#mermaid-svg-ce029i4XFK…

【Web后端】Django、flask及其場景——以構建系統原型為例

一、Django 和 Flask 簡介 Django 是一個高級 Python Web 框架,提供了完整的“開箱即用”功能,包括 ORM、認證、管理后臺等,便于快速開發安全且可維護的網站。Flask 是一個輕量級 Python Web 框架,核心功能比較簡單,但…

飛算JavaAI:從智能調度到出行服務的全鏈路技術升級

免責聲明:此文章所有內容都是實驗測試數據 目錄一、智慧交通核心場景的技術突破1.1 交通態勢感知與智能預警系統1.2 公共交通智能調度系統1.3 一體化出行服務系統二、智慧交通系統效能升級實踐2.1 交通數據中臺構建結語:重新定義智慧交通技術邊界一、智慧…

vscode的wsl環境,ESP32驅動0.96寸oled屏幕

注意大小寫,wsl(也就是linux環境)嚴格區分大小寫。有幫助記得訂閱專欄點贊,當前不定期持續更新。 一、文件夾格式: project/ # 項目根目錄 ├─ main/ # 主程序文件夾 │ ├─ mai…

CodeBuddy AI Coding 企業場景落地實踐與思考

👉目錄1 引言2 診斷團隊研發流程3 選擇合適的 AI CODING 工具4 團隊 AI 研發流程落地實踐5 全面 CodeBuddy ,深入 CodeBuddy6 誠邀共建在 AI 浪潮席卷全球的今天,AI CODING 已經不是企業研發團隊的可選項,而是必選項。如果你是企業…

windows下hashcat使用gpu破解execl打開密碼

需要的軟件 1.hashcat :https://hashcat.net 2.john the ripper :https://www.openwall.com 獲取execl加密文件的Hash PS G:\dl\john-1.9.0-jumbo-1-win64\john-1.9.0-jumbo-1-win64\run> python .\office2john.py .\test6.xlsx test6.xlsx:$office$*…

SpringCloud -- Nacos詳細介紹

5. Nacos 5.1 Nacos介紹 Nacos 可以理解為微服務的“電話簿 遙控器”。它是阿里巴巴開源的一個核心工具,主要解決微服務架構中的兩大問題: 5.1.1 服務注冊與發現(電話簿) 服務注冊:當某個微服務(比如“訂單…

【狂熱算法篇】探尋圖論幽徑之SPFA算法:圖論迷宮里的閃電尋徑者(通俗易懂版)

?????本篇帶大家探究的是SPFA算法;從基本理解,畫圖分析展示,再到最后的代碼實現,以及為何要這樣實現代碼,等一些細節問題做解釋,相關題型應用,非常值得喲,尤其是剛入門的小白學…

webrtc網頁一對一通話

基于flutter-webrtc-server做的更改,只使用網頁實現語音和視頻一對一通話,不支持多對多。 項目地址: https://github.com/chging/rtc-server

Java調用bat執行python腳本

1、問題概述?在windows環境中可以通過Java調用bat執行文件,從而調用python腳本,使用起來方便。2、實現方式?2.1、核心代碼bat文件可以在任意位置//獲取文件在項目中的文職 String batFilePathSystem.getProperty("user.dir&q…

JavaWeb 歡迎頁設置詳解

JavaWeb 歡迎頁設置詳解 歡迎頁&#xff08;Welcome Page&#xff09;是用戶訪問 Web 應用根目錄時自動展示的默認頁面。在 JavaWeb 中有多種配置方式&#xff1a;一、配置方式 1. 通過 web.xml 配置&#xff08;傳統方式&#xff09; <web-app><!-- 配置歡迎頁列表 -…

反射和類加載機制

一 類加載機制 1.1 加載機制簡介 Java程序從編寫到運行這個過程大致可以分為兩個階段&#xff1a;編譯階段和運行階段。 編譯階段指的是&#xff0c;java源代碼文件**(*.java)被java編譯器&#xff08;javac&#xff09;編譯成字節碼文件(*.class)**的過程。這個過程不需要直接…

在CentOS 7 上安裝 MySQL 數據庫

文章目錄前言一、使用官方 MySQL 倉庫安裝 MySQL1.1 下載并安裝 MySQL 官方 YUM 倉庫1.2 安裝 MySQL YUM 倉庫1.3 安裝 MySQL1.3.1 補充&#xff1a;1.4 啟動 MySQL 服務1.5 設置 MySQL 服務開機啟動1.6 獲取臨時 root 密碼1.7 配置 MySQL1.7.1 注意事項1.8 完成安裝二、使用默…

Linux:套接字

從進程的視角來看&#xff0c;網絡通信就是一個主機上的進程和另外一個主機上的進程進行信息傳遞&#xff0c;因此對于操作系統而言&#xff0c;網絡通信就是一種進程間通信的方式。不過這種進程間通信有特殊之處&#xff1a;同一臺主機下可以通過進程ID來標識一個唯一的進程&a…

Android init.rc詳解3

關于Android Init的詳解&#xff0c;關于Action&#xff0c;Service&#xff0c;Trigger的請參考Android init.rc詳解1&#xff0c;關于Options的請參考Android init.rc詳解2&#xff0c;本章將介紹常見的Commands。 1 Commands bootchart [start|stop] 啟動或停止bootcharti…