开放时代:SQL Server开源版面世
1. SQL Server 开源版介绍
Microsoft在4月2日宣布了SQL Server 2019开发者预览版,这次预览版开启了 SQL Server 开源的历史。这是历史上第一次,Microsoft公开了SQL Server的核心引擎代码。
简单来说,SQL Server开发者预览版就是SQL Server的开源版,这里是SQL Server在GitHub上的开源链接:https://github.com/Microsoft/sql-server-samples/releases/tag/wide-world-importers-v1.0
1.1 开源版带来的好处
SQL Server开源版给开发人员带来了以下的好处:
源代码的公开,使得开发人员可以更好地了解SQL Server引擎的内部原理。
帮助开发人员更好地定制SQL Server,从而满足用户的特殊需求。
可以自由地进行探索和学习操作数据库的各个层级。
1.2 开发者预览版包含哪些功能
SQL Server 2019 开发者预览版在开源版的基础上新增了一些功能,包括:
Apache Spark 和 Hadoop 分布式计算框架的跨平台集成
兼容性更新
对Docker容器、Kubernetes嵌入式开发的支持
2. SQL Server 开源版对数据安全的影响
作为企业级数据库,数据安全一直是 SQL Server 最大的优势和最为重视的方面。同时,开源的本质会让一些人产生担忧——开源会损失数据的安全性吗?
2.1 数据安全的解决方案
SQL Server开发者预览版的开源不会对数据库的安全性产生影响,因为开源版和商业版是相互独立的。
Microsoft实现多层次的加密技术,包括传输加密、存储加密等等。在数据库级别上,可以通过 TDE(透明数据加密)和 Always Encrypted(永远加密)两个功能,达到更为准确的数据安全性。
2.2 SQL Server的企业级安全体系结构
SQL Server的安全性和高可用性是其一贯的优点,SQL Server提供以下技术保障企业级的信息安全:
传输加密技术(TLS/SSL)
数据加密技术(TDE)
动态数据屏蔽技术(DMK)
ODBC/OLEDB 驱动器安全性
备份加密(备份、还原和复制)
如此企业级的技术,数据保护也从来没有真正的被突破过。因此,SQL Server开源版绝对不会在数据安全性上出现缺陷,所以开源版的发布对人们的担忧是没有必要的。
3. 如何体验SQL Server 2019开发者预览版
要了解SQL Server 2019开发者预览版的功能以及实现方式,您可以透过下列链接获取预览版并开始体验:
SET dateformat dmy;
SELECT si.StockItemId,
sil.[Description] AS [StockItem],
isnull(si.Markup,0) AS [Markup %],
isnull(ws.[Name],'Unknown') AS [Warehouse],
isnull(ss.QuantityOnHand,0) AS [Quantity],
isnull(si.ReorderLevel,0) AS [Reorder Level],
isnull(si.TaxRate,0) AS [Tax Rate %],
isnull(st.[Name],'UNKNOWN') AS [Stock Item Type],
isnull(s.[Name],'UNKNOWN') AS [Supplier],
isnull(sc.[Name],'NONE') AS [Stock Category]
FROM Warehouse.StockItemStockGroups sig
JOIN Warehouse.StockGroups sg
ON sig.StockGroupId = sg.StockGroupId
JOIN Sales.InvoiceLines sil
ON sig.StockItemId = sil.StockItemId
JOIN Sales.Invoices si
ON sil.InvoiceId = si.InvoiceId
JOIN Warehouse.Warehouses ws
ON ws.WarehouseId = si.WarehouseId
JOIN Warehouse.StockItems ss
ON si.StockItemId = ss.StockItemId
JOIN Production.StockItemStockTypes sist
ON ss.StockItemId = sist.StockItemId
LEFT JOIN Production.StockTypes st
ON sist.StockTypeId = st.StockTypeId
LEFT JOIN Purchasing.SupplierTransactions stx
ON si.StockItemId = stx.StockItemId
LEFT JOIN Purchasing.Suppliers s
ON s.SupplierId = stx.SupplierId
LEFT JOIN Warehouse.StockItemStockCategories sic
ON sic.StockItemId = si.StockItemId
LEFT JOIN Warehouse.StockCategories sc
ON sc.StockCategoryId = sic.StockCategoryId
WHERE ws.WarehouseId = 4
AND sil.Quantity < 0
AND si.InvoiceDate BETWEEN '01/06/2013' AND '30/06/2013'
AND si.ConfirmedDeliveryDate IS NOT NULL
ORDER BY sil.[Description],
isnull(sc.[Name],'NONE'),
isnull(s.[Name],'UNKNOWN');
您也可以扫描下方的QR码获取预览版体验:
4. 总结
SQL Server的开源版的发布是一个里程碑式的事件,对于想要了解SQL Server的内部原理的程序员们来说,这一事件无疑是一个福音。此次开源的举措可谓是一个“互利共生”的选择,既方便了用户,也推广了 SQL Server 的市场。
同时,SQL Server的开源版的出现并不会带来数据安全上的风险,因为作为企业级数据库,SQL Server一直秉承的是安全可靠的宗旨,如今才有将其内核的源代码开放的想法,就是从源头上保证了数据安全的保障。因此,SQL Server开源版不仅将SQL Server的优秀品质面向全球开放,也是发展数据库技术的一次进步。