开放时代:SQL Server开源版面世

开放时代: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的优秀品质面向全球开放,也是发展数据库技术的一次进步。

数据库标签