數據庫mysql審計,sql server 數據庫審計

本文目錄一覽:

什麼是數據庫審計?

隨着信息泄露事件的頻發,數據庫安全產品逐漸進入大眾視野。在數據庫安全產品中,數據庫審計大概是用戶方最為熟悉的一款產品了。在不影響業務系統正常運轉的情況下,數據庫審計產品能夠對數據庫的操作訪問行為進行追蹤審計,這也是大多數用戶將其作為數據庫安全標配採購的重要原因。本文時代新威為您科普什麼是數據庫審計,數據庫審計的作用和原理有哪些,一起來看看吧!

什麼是數據庫審計?

數據庫審計是指對審計日誌和事務日誌進行審查,從而跟蹤數據和數據庫結構的變化。數據庫可以這樣進行設置:捕捉數據和元數據的改變,以及存儲這些資料的數據庫所做的修改。典型的審計報告應該包括以下內容:完成的數據庫操作、改變的數據值、執行該項操作的人,以及其他幾項屬性。這些審計功能被植入到所有的關係數據庫平台中,並確保生成的記錄文件具有較高的準確性和完整性,就好像在數據庫中存儲的數據一樣。此外,審計跟蹤還能把一系列的語句轉化為合理的事務,並提供業務流程取證(forensic)分析所需的業務環境。

不過,審計功能也存在限制,例如不能對數據訪問語句(通常稱之為SELECT語句)進行審計。另外,本地數據庫審計很難捕捉到用戶認可的原始查詢(query)和變量(variables),只能從綜合的角度對事件做出記錄,而日誌則可以捕捉到改變前後的數據值。這也使得審計跟蹤在檢測已改變的內容時,比檢測已訪問的內容更為有效。

對數據庫活動和狀態進行取證檢查時,審計可以準確的把握事件的本質。對SELECT語句(用戶查看數據時會使用)進行檢查時,因為本地平台缺乏對這些語句的收集能力,即便利用高級選項實現了這項操作,也會導致性能受到極大損失。既然有簡單的方法可以高效地對SELECT語句進行登記(cataloging)(例如,登入失敗、嘗試查看信用證信息),為什麼企業還要選擇在本地數據庫審計功能上增加其他的數據收集資源。不管怎樣,內置的數據庫審計功能可以生成事務認證和法規控制的核心信息。

數據庫審計作用:

數據庫審計通過旁路部署,能夠實時記錄網絡上的數據庫活動,對數據庫操作進行細粒度審計的合規性管理,對數據庫遭受到的風險行為進行告警。它通過對用戶訪問數據庫行為的記錄、分析和彙報,用來幫助用戶事後生成合規搜索報告、事後追根溯源,同時加強內外部數據庫網絡行為記錄,提高數據資產安全。

數據庫審計原理:

數據庫審計系統對來自應用系統客戶端和dba對數據庫的訪問行為進行全面審計,不僅審計sql語句,還對ftp、telnet等遠程訪問進行審計。系統詳細記錄查詢、刪除、增加、修改等行為及操作結果,對危險操作還可實時預警,及時阻止,從而達到保護數據庫的良好效果。

黑格爾曾說,“存在即合理”,用在數據安全領域,對數據庫審計的運用同樣適用。時代新威認為數據庫審計是當下最經濟、最貼身、最有效的數據保鏢,同時我國信息化建設想要長遠持續發展,數據庫審計是必然選擇。

mysql數據庫審計功能 是否可以跟蹤查詢

mysql服務器自身沒有提供審計功能,但是我們可以使用init-connect + binlog的方法進行mysql的操作審計。由於mysql binlog記錄了所有對數據庫長生實際修改的sql語句,及其執行時間,和connection_id但是卻沒有記錄connection_id對應的詳細用戶信息。在後期審計進行行為追蹤時,根據binlog記錄的行為及對應的connection-id 結合 之前連接日誌記錄 進行分析,得出最後的結論。

1. 設置init-connect

1.1 創建用於存放連接日誌的數據庫和表

create database accesslog;

CREATE TABLE accesslog.accesslog (`id` int(11) primary key auto_increment, `time` timestamp, `localname` varchar(30), `matchname` varchar(30))

1.2 創建用戶權限

可用現成的root用戶用於信息的讀取

grant select on accesslog.* to root;

如果存在具有to *.* 權限的用戶需要進行限制。

這裡還需要注意用戶必須對accesslog表具有insert權限

grant select on accesslog.* to user@’%’;

1.3 設置init-connect

在[mysqld]下添加以下設置:

init-connect=’insertinto accesslog.accesslog(id, time, localname, matchname)

values(connection_id(),now(),user(),current_user());’

——注意user()和current_user()的區別

log-bin=xxx

這裡必須開啟binlog

1.4 重啟數據庫生效

shell /etc/init.d/mysql restart

2. 記錄追蹤

2.1 thread_id確認

可以用以下語句定位語句執行人

Tencent:~ # mysqlbinlog –start-datetime=’2011-01-26 16:00:00′

–stop-datetime=’2011-01-26 17:00:00′ /var/lib/mysql/mysql-bin.000010

| grep -B 5 ‘wsj’

COMMIT/*!*/;

# at 767

#110126 16:16:43 server id 1 end_log_pos 872 Query thread_id=19 exec_time=0 error_code=0

use test/*!*/;

SET TIMESTAMP=1296029803/*!*/;

create table wsj(id int unsigned not null)

BEGIN

/*!*/;

# at 940

#110126 16:16:57 server id 1 end_log_pos 1033 Query thread_id=19 exec_time=0 error_code=0

SET TIMESTAMP=1296029817/*!*/;

insert into wsj(id) values (1)

BEGIN

/*!*/;

# at 1128

#110126 16:16:58 server id 1 end_log_pos 1221 Query thread_id=19 exec_time=0 error_code=0

SET TIMESTAMP=1296029818/*!*/;

insert into wsj(id) values (2)

2.2 用戶確認

thread_id 確認以後,找到元兇就只是一條sql語句的問題了。

mysql select * from accesslog where id=19;

+—-+———————+———————+———–+

| id | time | localname | matchname |

+—-+———————+———————+———–+

| 19 | 2011-01-26 16:15:54 | test@10.163.164.216 | test@% |

+—-+———————+———————+———–+

1 row in set (0.00 sec)

數據庫審計 支持審計數據庫包括哪些

安華金和數據庫審計產品支持市面上30多種數據庫類型,關係型數據庫類型包含Oracle、MySQL、SQLServer、DB2、Postgres、Sybase、DM、Gbase8A、Kingbase、Informix、Oscar神通、CacheDB、Gbase8T、MariaDB、Percona、Greenplum、Teradata、Hana、SG-RDB_MySQL、SG-RDB_PostgreSQL

等等,非關係型數據庫包含HBase、MongoDB、Hive、Impala、Sentry、Redis、HDFS、ElasticSearch、Spark SQL等等,去年做交流的時候聊過,還特意留了一張支持數據庫的表格,現在是不是又有新的數據庫也可以支持,你跟安華了解下,他們是業界支持數據庫類型最多的一家廠商。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/160532.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-21 01:14
下一篇 2024-11-21 01:14

相關推薦

  • 如何修改mysql的端口號

    本文將介紹如何修改mysql的端口號,方便開發者根據實際需求配置對應端口號。 一、為什麼需要修改mysql端口號 默認情況下,mysql使用的端口號是3306。在某些情況下,我們需…

    編程 2025-04-29
  • Python 常用數據庫有哪些?

    在Python編程中,數據庫是不可或缺的一部分。隨着互聯網應用的不斷擴大,處理海量數據已成為一種趨勢。Python有許多成熟的數據庫管理系統,接下來我們將從多個方面介紹Python…

    編程 2025-04-29
  • openeuler安裝數據庫方案

    本文將介紹在openeuler操作系統中安裝數據庫的方案,並提供代碼示例。 一、安裝MariaDB 下面介紹如何在openeuler中安裝MariaDB。 1、更新軟件源 sudo…

    編程 2025-04-29
  • Hibernate日誌打印sql參數

    本文將從多個方面介紹如何在Hibernate中打印SQL參數。Hibernate作為一種ORM框架,可以通過打印SQL參數方便開發者調試和優化Hibernate應用。 一、通過配置…

    編程 2025-04-29
  • Python操作MySQL

    本文將從以下幾個方面對Python操作MySQL進行詳細闡述: 一、連接MySQL數據庫 在使用Python操作MySQL之前,我們需要先連接MySQL數據庫。在Python中,我…

    編程 2025-04-29
  • 使用SQL實現select 聚合查詢結果前加序號

    select語句是數據庫中最基礎的命令之一,用於從一個或多個表中檢索數據。常見的聚合函數有:count、sum、avg等。有時候我們需要在查詢結果的前面加上序號,可以使用以下兩種方…

    編程 2025-04-29
  • 理解Mybatis中的SQL Limit用法

    Mybatis是一種非常流行的ORM框架,提供了SQL映射配置文件,可以使用類似於傳統SQL語言的方式編寫SQL語句。其中,SQL的Limit語法是一個非常重要的知識點,能夠實現分…

    編程 2025-04-29
  • 數據庫第三範式會有刪除插入異常

    如果沒有正確設計數據庫,第三範式可能導致刪除和插入異常。以下是詳細解釋: 一、什麼是第三範式和範式理論? 範式理論是關係數據庫中的一個規範化過程。第三範式是範式理論中的一種常見形式…

    編程 2025-04-29
  • MySQL遞歸函數的用法

    本文將從多個方面對MySQL遞歸函數的用法做詳細的闡述,包括函數的定義、使用方法、示例及注意事項。 一、遞歸函數的定義 遞歸函數是指在函數內部調用自身的函數。MySQL提供了CRE…

    編程 2025-04-29
  • SQL預研

    SQL預研是指在進行SQL相關操作前,通過數據分析和理解,確定操作的方法和步驟,從而避免不必要的錯誤和問題。以下從多個角度進行詳細闡述。 一、數據分析 數據分析是SQL預研的第一步…

    編程 2025-04-28

發表回復

登錄後才能評論