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