資料庫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-tw/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

發表回復

登錄後才能評論