亲爱的 #MongoDB 用户,欢迎来到 #Azure#DocumentDB

作者:Rimma Nehme,架构师,开源软件分析,NoSQL团队 我们自始至终将“安全”放在第一位  对于我们,从代码开发到事件响应,每一个环节安全都是重中之重。Azure 代码开发遵循微软安全开发生命周期(SDL)——这是一个软件开发流程,帮助开发人员构建更安全的软件并满足安全合规性要求,同时极大降低开发成本。Azure安全中心使Azure成为唯一一个提供持续安全健康监测的公有云平台。 Azure DocumentDB是全局分布式多租户数据库系统,其设计旨在让开发人员能够生成跨区域范围的应用程序。 DocumentDB 允许跨任意数量的地理区域灵活扩展吞吐量和存储。这项服务提供低延迟保证 P99-99.99% 的高可靠性, 可预测的吞吐量和多个定义完善的一致性模型——所有这些全部通过企业级服务级别协议支持。凭借其架构不可知和经写入优化的数据库引擎,DocumentDB 默认能够自动索引其引入的所有数据并以不受规模影响的方式服务于 SQL、MongoDB 和 JavaScript 语言集成查询。 DocumentDB有许多强大的安全功能内置。 为了保护存储在Azure DocumentDB数据库帐户中的数据,DocumentDB提供了对基于密钥的授权模型的支持,该授权模型利用强大的基于哈希值的消息验证代码 (HMAC)。除了基于密钥的授权模型,DocumentDB还支持针对入站防火墙支持的基于 IP 的策略驱动访问控制。此模型与传统数据库系统的防火墙规则非常类似,并且对 DocumentDB 数据库帐户提供额外的安全级别。利用此模型,可将 DocumentDB 数据库帐户配置为仅可从一组已批准的计算机和/或云服务进行访问。 一旦应用此配置,来自该允许列表之外的机器的所有请求都将被服务器阻止。从该组已批准的计算机和服务访问 DocumentDB 资源仍要求调用方提供有效的授权令牌。DocumentDB中群集内的所有通信(例如,复制流量)都在使用SSL。 从Mongo(或任何其他客户端)到DocumentDB服务的所有通信始终使用SSL。要了解有关在DocumentDB中安全访问您的数据的更多信息,请参阅安全访问DocumentDB数据。 下表将当前的DocumentDB功能映射到MongoDB推荐的安全查核项目。 DocumentDB提供的功能大大超出“单一站点”数据库提供的传统地理灾难恢复(Geo-DR)的功能。提供Geo-DR功能的单一站点数据库是跨区域分布式数据库的严格子集。由于DocumentDB的跨区域分布,开发人员既不必对数据库使用Lambda模式(例如,AWS DynamoDB复制),也不必跨多个地区执行 “double writes” 来构建自己的复制架构。由于无法确保这些方法的正确性以及没有可靠的服务级别协议,我们不建议采用这些方法。 DocumentDB使您能够拥有基于策略的地理围栏功能。地理围栏功能是一项重要功能,确保数据治理和合规限制,防止特定区域对您账户的恶意关联。地理围栏的示例包括(但不限于),将跨区域分发范围限定在主权云内。策略是使用您订购的Azure的元数据来加以控制的。 至于故障切换,如果存在多区域中断,您可以指定区域故障切换的确切顺序,并且可以为区域关联数据库账户匹配优先级。DocumentDB将确保故障切换以您指定的优先级顺序自动执行。 我们还致力于静态加密和动态加密。客户可以加密DocumentDB中的数据,以符合保护机密性和数据完整性的最佳实践。敬请关注。 第二,您不必重写应用程序 将应用程序转移到DocumentDB,不需要重新编写或丢弃现有工具。DocumentDB支持MongoDB的协议,这意味着DocumentDB数据库可以用作为MongoDB编写的应用程序的数据存储区。同样意味着,使用MongoDB数据库的现有驱动程序编写的基于MongoDB标准的应用程序可以和Document DB无缝对接,从而实现Document DB数据库最终替代MongoDB数据库。在通常情况下,您只需更改一个连接字符串即可从MongoDB切换到DocumentDB。 使用此功能,您可以在Azure云中轻松搭建和运行MongoDB数据库应用程序。利用DocumentDB的完全托管和可扩展的NoSQL数据库,同时继续使用熟悉的MongoBD技术和工具。 此外,为所有用户的利益,我们仅支持Mongo SSL(而不是http)。 你可以即刻获得的好处(其他数据库无法实现)包括: 无需服务器管理 —— DocumentDB是一种完全托管的服务,这意味着您不必自己管理任何基础架构或虚拟机。DocumentDB在中国Azure区域都可用。 无限缩放 —— 可以独立和弹性缩放吞吐量和存储。 可以添加容量,以便轻松地每秒为数百万个请求提供服务。…

0

数据库安全之数据掩码:SQL 2016新功能之动态数据掩码(SQL 2016 & AZURE SQL 数据库)

Max Shen 沈云 技术解决方案专家 我们在开发上都有这样的需求:对部分敏感数据进行屏蔽,如身份证信息,名字的一部分等 显示如: 在开发上,一般是取出相应的文字后进行替换,如可以用下面的方法。 function plusXing (str,StartLen,endLen) { var len = str.length- StartLen -endLen; var xing = ”; for (var i=0;i<len;i++) { xing+=’*’; } return str.substr(0, StartLen)+xing+str.substr(str.length-endLen); } 如输入 plusXing(“18023456789”,3,4) 返回结果:180****6789 但是这样的方法存在安全隐患,因为读取出来的源数据是明文。因此在SQL 2016和Azure SQL 数据库中有了一个数据掩码(Azure SQL 数据库翻译为动态数据掩码,Technet上面翻译为动态数据屏蔽)的新功能帮助解决这样的问题。 下面我们来看看能实现什么样的功能: 先在本地做个测试: 创建一张表 create TABLE Membership (MemberID int IDENTITY PRIMARY KEY, FirstName varchar(100) MASKED WITH…

0

Azure SQL 数据库中的DTU和eDTU是什么

Max Shen 沈云 技术解决方案专家 Azure SQL 使用了数据库事务单位 (DTU) 和弹性数据库事务单位 (eDTU) 来作为一个计量单位。 但是DTU和eDTU 究竟是什么? 在官方文档中是这样解释的: DTU 是一个资源度量单位,表示保证可用于单一数据库服务层内特定性能级别的单个 Azure SQL 数据库的资源。 DTU 是一定比例的 CPU、内存和数据 I/O 以及事务日志 I/O 的混合度量值,该比例由 OLTP 基准工作负荷决定(OLTP 基准工作负荷代表真实的 OLTP 工作负荷)。 这段话说起来有些难以理解,所谓一定比例的CPU、内存和数据库I/O这个就摸不着头了。 然后这些资源的比例又是按照OLTP的基准工作负荷来决定。OLTP基准工作负荷这个又是一个新东西,参见:https://www.azure.cn/documentation/articles/sql-database-benchmark-overview/ 其实DTU简单理解就是衡量Azure提供的SQL 服务计算能力的一个指标。这个指标越大,SQL 的计算能力越强。如100个DTU比5个DTU就应该是强20倍。 而DTU的性能评估,可以参看下表: 可以从上表上对应于本地数据库的性能采集的指标,可以估算出应该使用什么样级别的AZURE SQL。 当然服务层选择后仍然可以进行更改。 对于自己的应用应该用多大规模的DTU,可以进行详细的评估,可以使用下面工具 Azure SQL Database DTU Calculator   所以,DTU就理解为Azure数据库的性能评估单位 。 那么什么是eDTU呢,DTU虽然不太好理解,但是从构架来说,不外乎就是为应用提供数据库服务,也即是我们常用的模型,使用起来也简单。我们称之为单一数据库。要理解eDTU我们先要讲讲什么是Azure 弹性数据库。 但是在云的时代就有一个典型的问题存在:所有应用几乎都会有峰值和低谷。而单一数据库一旦分配,资源就已经提供,没有高峰和低谷的区别。那么如何解决这样的问题呢。通常有两个选项:(1) 基于高峰使用情况过度设置资源,因此需要支付额外的费用,或者 (2) 为了节省成本而采用低配,但在高峰期间会出现性能下降而导致客户满意度降低。…

0