有人在嘗試你的sa密碼,去把sa密碼設(shè)置復(fù)雜一些,長(zhǎng)度10位以上,數(shù)字字母符號(hào)混合即可,或者裝第三方防火墻軟件,將此ip地址禁止連接
創(chuàng)新互聯(lián)網(wǎng)站建設(shè)提供從項(xiàng)目策劃、軟件開發(fā),軟件安全維護(hù)、網(wǎng)站優(yōu)化(SEO)、網(wǎng)站分析、效果評(píng)估等整套的建站服務(wù),主營(yíng)業(yè)務(wù)為成都做網(wǎng)站、網(wǎng)站設(shè)計(jì),app軟件開發(fā)以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。創(chuàng)新互聯(lián)深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
SQLSERVER2008新增的審核功能
在sqlserver2008新增了審核功能,可以對(duì)服務(wù)器級(jí)別和數(shù)據(jù)庫(kù)級(jí)別的操作進(jìn)行審核/審計(jì),事實(shí)上,事件通知、更改跟蹤、變更數(shù)據(jù)捕獲(CDC)
都不是用來(lái)做審計(jì)的,只是某些人亂用這些功能,也正因?yàn)閬y用這些功能導(dǎo)致踩坑
事件通知:性能跟蹤
更改跟蹤:用Sync Services來(lái)構(gòu)建偶爾連接的系統(tǒng)
變更數(shù)據(jù)捕獲(CDC):數(shù)據(jù)倉(cāng)庫(kù)的ETL 中的數(shù)據(jù)抽?。ū澈笫褂胠ogreader)
而審核是SQLSERVER專門針對(duì)數(shù)據(jù)庫(kù)安全的進(jìn)行的審核,記住,他是專門的!
我們看一下審核的使用方法
審核對(duì)象
步驟一:創(chuàng)建審核對(duì)象,審核對(duì)象是跟保存路徑關(guān)聯(lián)的,所以如果你需要把審核操作日志保存到不同的路徑就需要?jiǎng)?chuàng)建不同的審核對(duì)象
我們把審核操作日志保存在文件系統(tǒng)里,在創(chuàng)建之前我們還要在相關(guān)路徑先創(chuàng)建好保存的文件夾,我們?cè)贒盤先創(chuàng)建sqlaudits文件夾,然后執(zhí)行下面語(yǔ)句
--創(chuàng)建審核對(duì)象之前需要切換到master數(shù)據(jù)庫(kù)
USE [master]
GO
CREATE SERVER AUDIT MyFileAudit TO FILE(FILEPATH='D:\sqlaudits') --這里指定文件夾不能指定文件,生成文件都會(huì)保存在這個(gè)文件夾
GO
實(shí)際上,我們?cè)趧?chuàng)建審核對(duì)象的同時(shí)可以指定審核選項(xiàng),下面是相關(guān)腳本
把日志放在磁盤的好處是可以使用新增的TVF:sys.[fn_get_audit_file] 來(lái)過濾和排序?qū)徍藬?shù)據(jù),如果把審核數(shù)據(jù)保存在Windows 事件日志里查詢起來(lái)非常麻煩
USE [master]
GO
CREATE SERVER AUDIT MyFileAudit TO FILE(
FILEPATH='D:\sqlaudits',
MAXSIZE=4GB,
MAX_ROLLOVER_FILES=6)
WITH (
ON_FAILURE=CONTINUE,
QUEUE_DELAY=1000);
ALTER SERVER AUDIT MyFileAudit WITH(STATE =ON)
MAXSIZE:指明每個(gè)審核日志文件的最大大小是4GB
MAX_ROLLOVER_FILES:指明滾動(dòng)文件數(shù)目,類似于SQL ERRORLOG,達(dá)到多少個(gè)文件之后刪除前面的歷史文件,這里是6個(gè)文件
ON_FAILURE:指明當(dāng)審核數(shù)據(jù)發(fā)生錯(cuò)誤時(shí)的操作,這里是繼續(xù)進(jìn)行審核,如果指定shutdown,那么將會(huì)shutdown整個(gè)實(shí)例
queue_delay:指明審核數(shù)據(jù)寫入的延遲時(shí)間,這里是1秒,最小值也是1秒,如果指定0表示是實(shí)時(shí)寫入,當(dāng)然性能也有一些影響
STATE:指明啟動(dòng)審核功能,STATE這個(gè)選項(xiàng)不能跟其他選項(xiàng)共用,所以只能單獨(dú)一句
在修改審核選項(xiàng)的時(shí)候,需要先禁用審核,再開啟審核
ALTER SERVER AUDIT MyFileAudit WITH(STATE =OFF)
ALTER SERVER AUDIT MyFileAudit WITH(QUEUE_DELAY =1000)
ALTER SERVER AUDIT MyFileAudit WITH(STATE =ON)
審核規(guī)范
在SQLSERVER審核里面有審核規(guī)范的概念,一個(gè)審核對(duì)象只能綁定一個(gè)審核規(guī)范,而一個(gè)審核規(guī)范可以綁定到多個(gè)審核對(duì)象
我們來(lái)看一下腳本
CREATE SERVER AUDIT SPECIFICATION CaptureLoginsToFile
FOR SERVER AUDIT MyFileAudit
ADD (failed_login_group),
ADD (successful_login_group)
WITH (STATE=ON)
GO
CREATE SERVER AUDIT MyAppAudit TO APPLICATION_LOG
GO
ALTER SERVER AUDIT MyAppAudit WITH(STATE =ON)
ALTER SERVER AUDIT SPECIFICATION CaptureLoginsToFile WITH (STATE=OFF)
GO
ALTER SERVER AUDIT SPECIFICATION CaptureLoginsToFile
FOR SERVER AUDIT MyAppAudit
ADD (failed_login_group),
ADD (successful_login_group)
WITH (STATE=ON)
GO
我們創(chuàng)建一個(gè)服務(wù)器級(jí)別的審核規(guī)范CaptureLoginsToFile,然后再創(chuàng)建多一個(gè)審核對(duì)象MyAppAudit ,這個(gè)審核對(duì)象會(huì)把審核日志保存到Windows事件日志的應(yīng)用程序日志里
我們禁用審核規(guī)范CaptureLoginsToFile,修改審核規(guī)范CaptureLoginsToFile屬于審核對(duì)象MyAppAudit ,修改成功
而如果要把多個(gè)審核規(guī)范綁定到同一個(gè)審核對(duì)象則會(huì)報(bào)錯(cuò)
CREATE SERVER AUDIT SPECIFICATION CaptureLoginsToFileA
FOR SERVER AUDIT MyFileAudit
ADD (failed_login_group),
ADD (successful_login_group)
WITH (STATE=ON)
GO
CREATE SERVER AUDIT SPECIFICATION CaptureLoginsToFileB
FOR SERVER AUDIT MyFileAudit
ADD (failed_login_group),
ADD (successful_login_group)
WITH (STATE=ON)
GO
--消息 33230,級(jí)別 16,狀態(tài) 1,第 86 行
--審核 'MyFileAudit' 的審核規(guī)范已經(jīng)存在。
這里要說(shuō)一下 :審核對(duì)象和審核規(guī)范的修改 ,無(wú)論是審核對(duì)象還是審核規(guī)范,在修改他們的相關(guān)參數(shù)之前,他必須要先禁用,后修改,再啟用
--禁用審核對(duì)象
ALTER SERVER AUDIT MyFileAudit WITH(STATE =OFF)
--禁用服務(wù)器級(jí)審核規(guī)范
ALTER SERVER AUDIT SPECIFICATION CaptureLoginsToFile WITH (STATE=OFF)
GO
--禁用數(shù)據(jù)庫(kù)級(jí)審核規(guī)范
ALTER DATABASE AUDIT SPECIFICATION CaptureDBLoginsToFile WITH (STATE=OFF)
GO
--相關(guān)修改選項(xiàng)操作
--啟用審核對(duì)象
ALTER SERVER AUDIT MyFileAudit WITH(STATE =ON)
--啟用服務(wù)器級(jí)審核規(guī)范
ALTER SERVER AUDIT SPECIFICATION CaptureLoginsToFile WITH (STATE=ON)
GO
--啟用數(shù)據(jù)庫(kù)級(jí)審核規(guī)范
ALTER DATABASE AUDIT SPECIFICATION CaptureDBLoginsToFile WITH (STATE=ON)
GO
審核服務(wù)器級(jí)別事件
審核服務(wù)級(jí)別事件,我們一般用得最多的就是審核登錄失敗的事件,下面的腳本就是審核登錄成功事件和登錄失敗事件
CREATE SERVER AUDIT SPECIFICATION CaptureLoginsToFile
FOR SERVER AUDIT MyFileAudit
ADD (failed_login_group),
ADD (successful_login_group)
WITH (STATE=ON)
GO
修改審核規(guī)范
--跟審核對(duì)象一樣,更改審核規(guī)范時(shí)必須將其禁用
ALTER SERVER AUDIT SPECIFICATION CaptureLoginsToFile WITH (STATE =OFF)
ALTER SERVER AUDIT SPECIFICATION CaptureLoginsToFile
ADD (login_change_password_gourp),
DROP (successful_login_group)
ALTER SERVER AUDIT SPECIFICATION CaptureLoginsToFile WITH (STATE =ON)
GO
審核操作組
每個(gè)審核操作組對(duì)應(yīng)一種操作,在SQLSERVER2008里一共有35個(gè)操作組,包括備份和還原操作,數(shù)據(jù)庫(kù)所有權(quán)的更改,從服務(wù)器和數(shù)據(jù)庫(kù)角色中添加或刪除登錄用戶
添加審核操作組的只需在審核規(guī)范里使用ADD,下面語(yǔ)句添加了登錄用戶修改密碼操作的操作組
ADD (login_change_password_gourp)
這里說(shuō)一下服務(wù)器審核的內(nèi)部實(shí)際上使用的是SQL2008新增的擴(kuò)展事件里面的其中一個(gè)package:SecAudit package,當(dāng)然他內(nèi)部也是使用擴(kuò)展事件來(lái)收集服務(wù)器信息
審核數(shù)據(jù)庫(kù)級(jí)別事件
數(shù)據(jù)庫(kù)審核規(guī)范存在于他們的數(shù)據(jù)庫(kù)中,不能審核tempdb中的數(shù)據(jù)庫(kù)操作
CREATE DATABASE AUDIT SPECIFICATION和ALTER DATABASE AUDIT SPECIFICATION
工作方式跟服務(wù)器審核規(guī)范一樣
在SQLSERVER2008里一共有15個(gè)數(shù)據(jù)庫(kù)級(jí)別的操作組
7個(gè)數(shù)據(jù)庫(kù)級(jí)別的審核操作是:select ,insert,update,delete,execute,receive,references
相關(guān)腳本如下:
--創(chuàng)建審核對(duì)象
USE [master]
GO
CREATE SERVER AUDIT MyDBFileAudit TO FILE(FILEPATH='D:\sqldbaudits')
GO
ALTER SERVER AUDIT MyDBFileAudit WITH (STATE=ON)
GO
--創(chuàng)建數(shù)據(jù)庫(kù)級(jí)別審核規(guī)范
USE [sss]
GO
CREATE DATABASE AUDIT SPECIFICATION CaptureDBActionToEventLog
FOR SERVER AUDIT MyDBFileAudit
ADD (database_object_change_group),
ADD (SELECT ,INSERT,UPDATE,DELETE ON schema::dbo BY PUBLIC)
WITH (STATE =ON)
我們先在D盤創(chuàng)建sqldbaudits文件夾
第一個(gè)操作組對(duì)數(shù)據(jù)庫(kù)中所有對(duì)象的DDL語(yǔ)句create,alter,drop等進(jìn)行記錄
第二個(gè)語(yǔ)句監(jiān)視由任何public用戶(也就是所有用戶)對(duì)dbo架構(gòu)的任何對(duì)象所做的DML操作
創(chuàng)建完畢之后可以在SSMS里看到相關(guān)的審核
SQL code--無(wú)
EXEC master.dbo.xp_instance_regwrite N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'AuditLevel', REG_DWORD, 0
GO
--僅限成功登陸
EXEC master.dbo.xp_instance_regwrite N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'AuditLevel', REG_DWORD, 1
GO
--失敗和成功的登錄
EXEC master.dbo.xp_instance_regwrite N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'AuditLevel', REG_DWORD, 3
GO
--僅限失敗登陸
EXEC master.dbo.xp_instance_regwrite N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'AuditLevel', REG_DWORD, 2
GO
------解決方案--------------------
其實(shí)SQL Server Login auditing是通過寫注冊(cè)表的方式來(lái)存儲(chǔ)的。存儲(chǔ)的注冊(cè)表位置如下:
HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\MSSQL.1\MSSQLServer\AuditLevel
修改方式如以下:
SQL code
USE [master]
GO
EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE'
, N'Software\Microsoft\MSSQLServer\MSSQLServer'
, N'AuditLevel'
, REG_DWORD
, 0/*--住需要修改這個(gè)地方的值為0、1、2或者3即可。
0:None
2:Failed Logins Only
1:Successful logins only
3:Both failed and successful logins only
*/
GO
------解決方案--------------------
1. 通過本地用戶管理,建立一個(gè)本地用戶sqlserver,密碼:123456;
2. 如果現(xiàn)在就我們打開SERVICES配置通過該用戶啟動(dòng),系統(tǒng)會(huì)報(bào)錯(cuò)誤:
Source:Service Control Manager
Event ID:7000
Description:
The %service% service failed to start due to the following error:
The service did not start due to a logon failure.
No Data will be available.
這是因?yàn)樽鳛橐粋€(gè)普通用戶是無(wú)法啟動(dòng)服務(wù)的,我們需要給sqlserver用戶分配必要的權(quán)限。
SQL Server服務(wù)啟動(dòng)賬號(hào)必須有3個(gè)基本權(quán)限:
l 數(shù)據(jù)庫(kù)本地目錄的讀寫權(quán)限;
l 啟動(dòng)本地服務(wù)的權(quán)限;
l 讀取注冊(cè)表的權(quán)限;
3. 賦予sqlserver用戶mssql(WINDOWS平臺(tái)上強(qiáng)大的數(shù)據(jù)庫(kù)平臺(tái))目錄的讀寫權(quán)限;
因?yàn)槲业腟QL SERVER是安裝在D盤,所以我在權(quán)限管理中,將D:\PROGRMAM FILE\Microsoft SQL Server\mssql(WINDOWS平臺(tái)上強(qiáng)大的數(shù)據(jù)庫(kù)平臺(tái))讀寫權(quán)限賦予sqlserver用戶。
4. 分配sqlserver用戶啟動(dòng)本地服務(wù)的權(quán)限;
這個(gè)比較復(fù)雜,我只舉例作為成員服務(wù)器的情況。
l 啟動(dòng)“Local Security Setting” MMC 管理單元。
l 展開Local Policy,然后單擊User Rights Assignment。
l 在右側(cè)窗格中,右鍵單擊Log on as Service,將用戶添加到該策略,然后單擊OK。
l 在右側(cè)窗格中,右鍵單擊Log on as a batch job,將用戶添加到該策略,然后單擊OK
l 在右側(cè)窗格中,右鍵單擊Locks pages in memory,將用戶添加到該策略,然后單擊OK
l 在右側(cè)窗格中,右鍵單擊Act as part of the operating systme,將用戶添加到該策略,然后單擊OK
l 在右側(cè)窗格中,右鍵單擊Bypass traverse checking,將用戶添加到該策略,然后單擊OK
l 在右側(cè)窗格中,右鍵單擊Replace a process level token,將用戶添加到該策略,然后單擊OK
l 關(guān)閉“Local Security Setting” MMC 管理單元。
如圖:
5. 重新啟動(dòng)系統(tǒng),用sqlserver用戶登陸系統(tǒng);
6. 再重新啟動(dòng)系統(tǒng),已a(bǔ)dministrator用戶登陸,打開SERVICES管理工具,配置用該用戶啟動(dòng)mssql(WINDOWS平臺(tái)上強(qiáng)大的數(shù)據(jù)庫(kù)平臺(tái))SERVER服務(wù);
這樣我們就可以通過限制SQLSERVER用戶的權(quán)限來(lái)控制SQLSERVER擴(kuò)展存儲(chǔ)過程的權(quán)限。
網(wǎng)站題目:sqlserver審核,sqlserver登錄審核
分享路徑:http://chinadenli.net/article14/dsdjege.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、網(wǎng)站導(dǎo)航、靜態(tài)網(wǎng)站、App設(shè)計(jì)、微信小程序、Google
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)