Microsoft Azure SQL Database Auditing 入門

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伺服器。

image

點選左下角的【NEW>SQL Databhase】。

image

輸入SQL Database的名稱(Name),接著點選Configure required settings來設定SQL Database要建立在新的或現有的SQL Database Server,若您是第一次使用SQL Database請選擇Create a new server,然後輸入伺服器名稱及伺服器管理員的帳號和密碼之後按OK。

image

相關資訊設定完畢後,按Create就可以開始建立SQL Database。

image

在Startboard可以看到Microsoft Azure正在建立SQL Database。

image

建立完畢之後您將看到如下圖的結果。

image

稽核(Auditing)

選擇上一節所建立的SQL Database,將垂直卷軸向下拉之後,便可看到Operations區段中有一Auditing Preview功能,點選Enable and setup Auditing來啟用稽核功能。

image

稽核功能必須搭配特定連線字串才能運作,換言之,若您仍使用以往連線到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才可以。

image

點選STORAGE ACCOUNT區段中的Configure required settings,接下來您需要選擇一個已經存在的Microsoft Azure 儲存體(Storage)帳戶來存放稽核結果,您並沒有辦法在這個步驟中建立一個新的儲存體帳戶。本文選擇sdaudit作為稽核功能所使用的儲存空間。

image

在AUDITING OPTIONS區段中您可以選擇要針對所有事件或是下列事件進行稽核,選擇完畢按OK。

Data Access 存取資料事件
Data Changes DML事件
Schema Changes DDL事件
Security Exceptions 安全性例外事件
Accounts, Roles & Permissions DCL事件

image

稽核功能啟用完畢之後,您可以看到如下圖的結果,最近24小時內並沒有任何稽核事件發生。

image

測試稽核功能

您可以使用SSMS或是應用程式甚至是sqlcmd,搭配啟用安全性(Security Enabled)的連線字串(<server name>.database.secure.windows.net)來連接已經啟用稽核功能的SQL Database,但一開始您可能會遇到如下圖的錯誤訊息,原因是SQL Database伺服器的保護機制,在預設情況下沒有任何外部連線可以存取SQL Database伺服器,所以即使您輸入正確的連線字串及帳號密碼,依然會遇到登入失敗的狀況。

image

登入失敗的事件立刻在SQL Database中被記錄下來,由下圖可以看到發生了3次登入失敗(LOGIN FAILURE)的事件。

image

因此您必須在現有的管理入口網站將您的用戶端IP位址加入至SQL Database伺服器防火牆所允許的IP位址清單之中。

image

防火牆設定完畢之後就可以順利連接SQL Database。

image

筆者以下圖的T-SQL來建立資料表並對資料表進行新增、修改及選擇資料的動作,以及修改資料表的結構。

image

稽核紀錄分析與報表

回到新版管理入口網站,就可以看到上一節所執行的DML及DDL敘述被稽核下來,若要進一步分析,可以點選OPEN IN EXCEL下載稽核報表範本。

image

在稽核報表範本提供數種EXCEL報表來幫助您了解稽核紀錄的結果。

image

包含異常報表、依據時間、事件類型、資料庫名稱等原始資料來向下鑽探以及事件類型、時間分析等報表,但要套用這些現成的分析報表您必須搭配PowerQuery。請在安裝PowerQuery之後點選功能區塊中的POWER QUERY>活頁簿>AuditLogs。

image

開啟查詢編輯器之後在套用的步驟視窗點選Source右側的齒輪圖示。

image

將資料表儲存體的帳戶名稱,改成您實際在新管理入口網站中啟用稽核功能時,所指定的儲存體帳戶。

image

若您的資料量可能超過預設的1,000,000列,可以點選KeepFirstRows屬性右側的齒輪來修改的保留最前面的資料列筆數。

image

例如修改為6,000,000。

image

接著按重新整理預覽來檢視稽核紀錄。

image

當您將看到稽核紀錄的預覽結果,代表資料表儲存體連線資訊設定正確,就可按關閉並載入來重新套用稽核資料到稽核報表範本。

image

如此一來就可以在稽核報表範本中分析SQL Database稽核結果(如下圖)。

image

image

image

image

參考資料

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

Audit Log Format Reference

A Boost in Security for Azure SQL Database: Auditing