Microsoft Azure SQL Database Auditing 入門
說明
2014/7/31在Microsoft Azure Blog發表了SQL Database再度推出新功能的消息,包含稽核(Auditing)、標準地理複寫(Standard geo-replication)以及地理還原(Geo-restore)等功能,本文將針對這次增加的功能當中有關Audting的部分帶您進行實作,若您需要知道詳細的功能說明,請見參考資料的文章。
建立SQL Database資料庫
要啟用SQL Database的稽核功能,目前只能在新的管理入口網站來啟用,首先我們先在管理入口網站建立SQL Database伺服器。
點選左下角的【NEW>SQL Databhase】。
輸入SQL Database的名稱(Name),接著點選Configure required settings來設定SQL Database要建立在新的或現有的SQL Database Server,若您是第一次使用SQL Database請選擇Create a new server,然後輸入伺服器名稱及伺服器管理員的帳號和密碼之後按OK。
相關資訊設定完畢後,按Create就可以開始建立SQL Database。
在Startboard可以看到Microsoft Azure正在建立SQL Database。
建立完畢之後您將看到如下圖的結果。
稽核(Auditing)
選擇上一節所建立的SQL Database,將垂直卷軸向下拉之後,便可看到Operations區段中有一Auditing Preview功能,點選Enable and setup Auditing來啟用稽核功能。
稽核功能必須搭配特定連線字串才能運作,換言之,若您仍使用以往連線到SQL Database的連線字串,例如 'Server=tcp:mysds.database.windows.net,1433;Database=mysd;User ID=terrychuang@mysds;Password={your_password_here};Trusted_Connection=False;Encrypt=True;Connection Timeout=30;' 來連接啟用稽核功能的SQL Database,稽核動作並不會被觸發,必須將連線字串改為 'Server=tcp:mysds.database.secure.windows.net,1433;Database=mysd;User ID=terrychuang;Password={your_password_here};Trusted_Connection=False;Encrypt=True;Connection Timeout=30;',也就是SQL Database伺服器的URL需增加secure才可以。
點選STORAGE ACCOUNT區段中的Configure required settings,接下來您需要選擇一個已經存在的Microsoft Azure 儲存體(Storage)帳戶來存放稽核結果,您並沒有辦法在這個步驟中建立一個新的儲存體帳戶。本文選擇sdaudit作為稽核功能所使用的儲存空間。
在AUDITING OPTIONS區段中您可以選擇要針對所有事件或是下列事件進行稽核,選擇完畢按OK。
Data Access | 存取資料事件 |
Data Changes | DML事件 |
Schema Changes | DDL事件 |
Security Exceptions | 安全性例外事件 |
Accounts, Roles & Permissions | DCL事件 |
稽核功能啟用完畢之後,您可以看到如下圖的結果,最近24小時內並沒有任何稽核事件發生。
測試稽核功能
您可以使用SSMS或是應用程式甚至是sqlcmd,搭配啟用安全性(Security Enabled)的連線字串(<server name>.database.secure.windows.net)來連接已經啟用稽核功能的SQL Database,但一開始您可能會遇到如下圖的錯誤訊息,原因是SQL Database伺服器的保護機制,在預設情況下沒有任何外部連線可以存取SQL Database伺服器,所以即使您輸入正確的連線字串及帳號密碼,依然會遇到登入失敗的狀況。
登入失敗的事件立刻在SQL Database中被記錄下來,由下圖可以看到發生了3次登入失敗(LOGIN FAILURE)的事件。
因此您必須在現有的管理入口網站將您的用戶端IP位址加入至SQL Database伺服器防火牆所允許的IP位址清單之中。
防火牆設定完畢之後就可以順利連接SQL Database。
筆者以下圖的T-SQL來建立資料表並對資料表進行新增、修改及選擇資料的動作,以及修改資料表的結構。
稽核紀錄分析與報表
回到新版管理入口網站,就可以看到上一節所執行的DML及DDL敘述被稽核下來,若要進一步分析,可以點選OPEN IN EXCEL下載稽核報表範本。
在稽核報表範本提供數種EXCEL報表來幫助您了解稽核紀錄的結果。
包含異常報表、依據時間、事件類型、資料庫名稱等原始資料來向下鑽探以及事件類型、時間分析等報表,但要套用這些現成的分析報表您必須搭配PowerQuery。請在安裝PowerQuery之後點選功能區塊中的POWER QUERY>活頁簿>AuditLogs。
開啟查詢編輯器之後在套用的步驟視窗點選Source右側的齒輪圖示。
將資料表儲存體的帳戶名稱,改成您實際在新管理入口網站中啟用稽核功能時,所指定的儲存體帳戶。
若您的資料量可能超過預設的1,000,000列,可以點選KeepFirstRows屬性右側的齒輪來修改的保留最前面的資料列筆數。
例如修改為6,000,000。
接著按重新整理預覽來檢視稽核紀錄。
當您將看到稽核紀錄的預覽結果,代表資料表儲存體連線資訊設定正確,就可按關閉並載入來重新套用稽核資料到稽核報表範本。
如此一來就可以在稽核報表範本中分析SQL Database稽核結果(如下圖)。
參考資料
Azure SQL Database adds new features
Azure: Virtual Machine, Machine Learning, IoT Event Ingestion, Mobile, SQL, Redis, SDK Improvements
Windows Azure SQL Database Connection Security
Azure SQL Database Security Guidelines and Limitations
Get started with SQL database auditing