一、總結
1、SQLServer2008開始支持審計功能,審計規范分為服務器級別和數據庫級別兩種;
2、無論是服務器級別的審計還是數據庫級別的審計,第一步創建審計對象的方式一樣,最后創建完都是在實例下的安全性查看;
3、創建審計對象的時候,不能在創建腳本里直接啟用審計(也就是添加state=on),在創建審計規范對象的時候的可以直接在創建腳本里直接添加state=on,直接啟用審計規范;
4、SQLServer審核功能相對而言性能影響較小,審核粒度也非常靈活;
5、審核的日志文件是二進制的,不能使用文本編輯器直接打開;
6、在SQLServer中,一個審計對象只能綁定一個審核規范,而一個審核規范可以被多個審計對象使用;
7、不管是修改審計還是審計規范都得先禁用,再修改,再啟用;
8、不能審核tempdb中的數據庫操作;
二、創建審計對象
1、創建審計對象
create server audit MyFileAudit to file( filepath='D:\sqlaudits', maxsize=4gb, max_rollover_files=6) with( on_failure=continue, queue_delay=1000 );
參數詳解:
maxsize:定義每個審核日志的最大大小是4GB;
max_rollover_files:定義滾動文件的數目,達到6個文件的時候,開始刪除前面的歷史記錄,復用文件空間;
on_failure:指明當審核發生錯誤的時候,是否繼續審計,如果指明shutdown,那么將會shutdown整改實例;
query_delay:指定審核數據寫入的延遲時間,1000表示1秒,如果指定0表示實時寫入,當然性能也有些影響;
2、開啟審計
命令:alter server audit MyAudit with(state=on)
3、禁用審計
命令:alter server audit MyFileAudit with(state=off)
4、修改審計選項(修改之前要先禁用審計,修改完之后再啟用審計)
命令:alter server audit MyAudit with(state=off)
alter server audit MyAudit with (queue_delay=1000)
alter server audit MyAudit with(state=on)
5、查看審計的狀態(1表示啟用,0表示禁用)
命令:select name,is_state_enabled from sys.server_file_audits
6、刪除審計
命令:drop server audit MyFileAudit
三、創建服務器級別的審核規范
1、創建服務器級別的審核規范
create server audit specification CaptureLoginsToFile for server audit MyAudit add (failed_login_group), add (successful_login_group) with(state=on) go
2、修改審核規范
--(1)禁用審核規范 alter server audit specification CaptureLoginsToFile with (state=off) --(2)修改審核規范 alter server audit specification CaptureLoginsToFile add (login_change_password_group), --改變登錄名的密碼后,寫入審計日志 drop (successful_login_group) --刪除登錄成功信息的審計 --(3)啟用審核規范 alter server audit specification CaptureLoginsToFile with (state=on
3、查看審核規范狀態
命令:select name,is_state_enabled from sys.server_audit_specifications
4、查看審核規范的詳細信息
命令:select * from sys.server_audit_specification_details
5、刪除審計規范
命令:drop server audit specification CaptureLoginsToFile
6、使用sys.[fn_get_audit_file]()函數查看審核日志
命令:select * from sys.[fn_get_audit_file]('D:\sqlaudits\MyAudit_C3C37587-2CFA-41C2-90B0-3F87F16135EA_0_132400485274590000.sqlaudit',default,default)
7、在SSMS里查看審核日志
四、創建數據庫級別的審核規范
1、創建審計對象(服務器級別和數據庫級別創建方式一致)
create server audit MyDBAudit to file( filepath='D:\sqlaudits\dbaudits', maxsize=4gb, max_rollover_files=6) with( on_failure=continue, queue_delay=1000 );
2、創建數據庫級別的審核規范
use [test] go create database audit specification CaptureDBToFile for server audit MyDBAudit add (database_object_change_group), add (select,insert,update,delete on schema::dbo by public) with(state=on) go
3、修改數據庫級別的審計規范
--(1)禁用審核規范 alter database audit specification CaptureDBToFile with (state=off) --(2)修改審核規范 alter database audit specification CaptureDBToFile drop (select on schema::dbo by public) --刪除select的審計 --(3)啟用審核規范 alter database audit specification CaptureDBToFile with (state=on)
4、查看審核規范狀態
命令:select name,is_state_enabled from test.sys.database_audit_specifications
5、查看審計規范的詳細信息
命令:select * from test.sys.database_audit_specification_details
6、刪除審計規范
命令:drop database audit specification CaptureDBToFile
7、使用sys.[fn_get_audit_file]()函數查看審計結果
select * from sys.[fn_get_audit_file]('D:\sqlaudits\dbaudits\MyDBAudit_A5675035-43BB-4A19-B647-D6792E0120F9_0_132400509506420000.sqlaudit',default,default)
五、審核功能相關視圖
1、查看審核對象信息 select * from sys.server_file_audits 2、查看服務器級別審核規范 select * from sys.server_audit_specifications select * from sys.server_audit_specification_details 3、查看數據庫級別的審核規范 select * from sys.database_audit_specifications select * from sys.database_audit_specification_details 4、查看審核對象的狀態 select * from sys.dm_server_audit_status 5、查看有所有的操作組 select * from sys.dm_audit_actions select * from sys.dm_audit_class_type_map
參考網址
https://www.cnblogs.com/lyhabc/p/4074003.html
***************************************************
如下是個人開發系統,歡迎大家體驗,純屬個人愛好,想一塊玩的,私信。
易本浪賬:www.jialany.com
***************************************************