SQL Server 問世至今已達27個年頭。自從微軟在2015年5月開放SQL Server 2016公開預覽版讓外部使用者體驗,經過了一整年的醞釀,終於在2016年6月1日正式上發行了!
SQL Server 2016 推出了四個版本:
- Enterprise :企業級功能的SQL Server版本,適用於大型企業以及大型資料庫或資料倉儲的伺服器版本。
- Standard:標準功能的SQL Server版本,適用於一般企業的伺服器版本。
- Express:免費的SQL Server版本,適用於小型應用程式或是單機型應用程式,但在功能上有設限。
- Developer:與SQL Server Enterprise Edition相同的功能,但只授權在開發應用程式與測試之用,一般使用者無法購得。
各版本差異整理如下:
Enterprise | Standard | Express | Developer | |
CPU核心數 |
作業系統最大值 | 24 cores | 4 cores | 作業系統最大值 |
支援最大記憶體 | 作業系統最大值 | 128 GB | 1 GB | 作業系統最大值 |
支援資料庫容量 | 524 PB | 524 PB | 10 GB | 524 PB |
進階安全性 (SQL Server 稽核、透明資料加密) | v | v | ||
資料倉儲 (記憶體運算技術資料行存放區、壓縮、分割) | v | v | ||
基本企業商業智慧 (分析、多維度語意模型、資料數據分析) | v | v | v |
參考資料:https://www.microsoft.com/en-us/cloud-platform/sql-server-editions
SQL Server 2016 有什麼呢?
本次 SQL Server 2016 版本,有三項新功能與「安全性」有關,分別是:
- 一律加密(Always Encrypted):根據白皮書內容(來源:http://download.microsoft.com/download/D/7/5/D750D5B9-8692-42FC-80D8-0EA9C3E76739/SQL_Server_2016_Mission_Critical_Performance_White_Paper.pdf),SQL Server 2016 提供程式設計師完善的資料加密機制,不須再自行設計加密方式,將自行加密的內容寫入資料庫。新版可直接透過 ADO.NET、JDBC、ODBC等資料庫驅動介面,直接使用內建加密函式庫,將資料加密寫入資料庫。
另外,SQL Server 還提供二種加密方式:
-
- 隨機式加密(Randomized encryption):相同的資料值,加密結果不相同。此做法是較安全的方式,但副作用會影響加密欄位的平行搜尋、資料群組化、索引、關聯。
- 固定式加密(Deterministic encryption):相同的資料值,加密結果會相同。安全性較低。
- 資料列層級安全性(Row-Level Security):查詢結果可依照DBA或是程式開發者的權限設定,讓相同的查詢 T-SQL 語法,會因為不同的使用者而有所不同的查詢結果,動作除了查詢之外,也包含新增、更新、刪除資料。因此可針對應用程式所登入使用者的權限來規劃安全性原則,就能有效避免因為程式開發的疏忽而危及資料的安全性和正確性。
- 動態資料遮罩(Dynamic Data Masking):資料除了加密保護外,程式開發者也經常選擇擾亂法來模糊、遮蔽重要的機敏資料,例如身份證字號、電子郵件信箱、電話號碼。市面上也有許多第三方擾亂程式碼擾亂軟體,會增加開發成本。SQL Server 2016 提供內建動態擾亂方式,藉由此功能可在回傳查詢結果時就將其擾亂,原本應用程式不須額外處理就可以避免資料外洩。
當然,除了安全性功能之外,也有增加許多便利於開發人員、資料分析人員的功能,像是支援 R語言、JSON 資料交換格式、PolyBase(使用Transact SQL語句查詢Hadoop或者SQL Azure),值得關注!