全程加密技术(Always Encrypted
)
全程加密技术(Always Encrypted
)支持在SQL Server
中保持数据加密,只有调用SQL Server
的应用才能访问加密数据。该功能支持客户端应用所有者控制保密数据,指定哪些人有权限访问。SQL Server 2016
通过验证加密密钥实现了对客户端应用的控制。该加密密钥永远不会传递给SQL Server
。使用该功能,你可以避免数据库或者操作系统管理员接触客户应用程序敏感数据(包括静态数据和动态数据)。该功能现在支持敏感数据存储在云端管理数据库中,并且永远保持加密。即便是云供应商也看不到数据,你晚上可以睡安稳觉了。
动态数据屏蔽(Dynamic Data Masking
)
如果你对保护数据感兴趣,希望一部分人可以看到加密数据,而另一些人只能看到加密数据混淆后的乱码,那么你一定会对动态数据屏蔽感兴趣。利用动态数据屏蔽功能,你可以将SQL Server
数据库表中待加密数据列混淆,那些未授权用户看不到这部分数据。利用动态数据屏蔽功能,你还可以定义数据的混淆方式。例如,如果你在表中接收存储信用卡号,但是你希望只看到卡号后四位。使用动态数据屏蔽功能定义屏蔽规则就可以限制未授权用户只能看到信用卡号后四位,而有权限的用户可以看到完整信用卡信息。
JSON
支持
JSON
就是JavaScript Object Notation
(轻量级数据交换格式)。在SQL Server 2016
中,你现在可以在应用和SQL Server
数据库引擎之间用JSON
格式交互。微软公司在SQL Server
中增加了对JSON
的支持,可以解析JSON
格式数据然后以关系格式存储。此外,利用对JSON
的支持,还可以把关系型数据转换成JSON
格式数据。微软公司还增加了一些函数提供对存储在SQL Server
中的JSON
数据执行查询。SQL Server
有了这些内置增强支持JSON
操作的函数,应用程序使用JSON
数据与SQL Server
交互就更容易了。
多TempDB
数据库文件
如果你运行的是多核计算机,那么运行多个tempdb
数据文件就是最佳实践做法。以前直到SQL Server 2014
版本,你安装SQL Server
之后总是不得不手工添加tempdb
数据文件。在SQL Server 2016
中,你现在可以在安装SQL Server
的时候直接配置需要的tempdb
文件数量。这样你就不再需要安装完成之后再手工添加tempdb
文件了。
PolyBase
PolyBase
支持查询分布式数据集。有了PolyBase
,你可以使用Transact SQL
语句查询Hadoop
或者SQL Azure blob
存储。你现在可以使用PolyBase
写临时查询,实现SQL Server
关系型数据与Hadoop
或者SQL Azure blog
存储中的半结构化数据之间的关联查询。此外,你还可以利用SQL Server
的动态列存储索引针对半结构化数据来优化查询。如果组织跨多个分布式位置传递数据,PolyBase
就成了利用SQL Server
技术访问这些位置的半结构化数据的便捷解决方案了。
Query Store
如果你经常使用执行计划,你就会喜欢新版的Query Store
功能。在2016
之前的版本中,你可以使用动态管理试图(DMV
)来查看现有执行计划。但是,DMV
只支持你查看计划缓存中当前活跃的计划。如果出了计划缓存,你看不到计划的历史情况。有了Query Store
功能,SQL
现在可以保存历史执行计划。不仅如此,该功能还可以保存那些历史计划的查询统计。这是一个很好的补充功能,你可以利用该功能随着时间推移跟踪执行计划的性能。
行级安全(Row Level Security
)
SQL
数据库引擎具备了行级安全特性以后,就可以根据SQL Server
登录权限限制对行数据的访问。限制行是通过内联表值函数过滤谓词定义实现的。安全策略将确保过滤器谓词获取每次“SELECT
”或者 “DELETE
”操作的执行。在数据库层面实现行级安全意味着应用程序开发人员不再需要维护代码限制某些登录或者允许某些登录访问所有数据。有了这一功能,用户在查询包含行级安全设置的表时,他们甚至不知道他们查询的数据是已经过滤后的部分数据。
SQL SERVER
支持R
语言
微软公司收购Revolution Analytics
公司之后,现在可以在SQL Server
上针对大数据使用R
语言做高级分析功能了。SQL Server
支持R
语言处理以后,数据科学家们可以直接利用现有的R
代码并在SQL Server
数据库引擎上运行。这样我们就不用为了执行R
语言处理数据而把SQL Server
数据导出来处理。该功能把R
语言处理带给了数据。
(译注:Revolution Analytics
公司是耶鲁大学的派生公司,成立于2007年,是一家基于开源项目R
语言做计算机软件和服务的供应商。该公司去年被微软收购。)
Stretch Database
Stretch Database
功能提供了把内部部署数据库扩展到Azure SQL
数据库的途径。有了Stretch Database
功能,访问频率最高的数据会存储在内部数据库,而访问较少的数据会离线存储在Azure SQL
数据库中。当你设置数据库为“stretch
“时,那些比较过时的数据就会在后台迁移到Azure SQL
数据库。如果你需要运行查询同时访问活跃数据和stretched
数据库中的历史信息,数据库引擎会将内部数据库和Azure SQL
数据库无缝对接,查询会返回你要的结果,就像在同一个数据源一样。该功能使得DBA
工作更容易了,他们可以归档历史信息转到更廉价的存储介质,无需修改当前实际应用代码。这样你就可以把常用的内部数据库查询保持最佳性能状态。
历史表(Temporal Table
)
历史表会在基表中保存数据的旧版本信息。有了历史表功能,SQL Server
会在每次基表有行更新时自动管理迁移旧的数据版本到历史表中。历史表在物理上是与基表独立的另一个表,但是与基表是有关联关系的。如果你已经构建或者计划构建自己的方法来管理行数据版本,那么你应该先看看SQL Server 2016
中新提供的历史表功能,然后再决定是否需要自行构建解决方案。