您可能已经将按需系统迁移到MicrosoftAzure平台,而这种迁移通常会引发安全和机密性问题。因为,至少在某种程度上,如果没有完全托管环境中自然存在的监管,这是不可避免的。控制级别的降低绝对是一个需要考虑的因素,尤其是在处理PaaS(平台即服务)资源(例如AzureSQL数据库)时,您有很多技术产品的选择,这些技术产品允许您控制治理状态和驻留保留对Azure中服务的访问权限足以缓解大多数这些安全问题。SQL数据库审计就是这样一种技术,也是本文的主题。你应该注意到这个特性还是比较新的,但它相对较新的出现主要是为了跟上Azure更新的步伐。经过三个月的试用期后,它于2014年11月12日全面上市,因此现在支持生产使用。但是,它不适用于传统定价层,因此如果您的数据库配置为用于Web或商业用途,您首先需要将其升级到基本、标准或增强。您可以直接在两个版本的Azure门户中修改配置(传统版门户从Scale选项卡,或从预览版门户引用级别)。其主要目的是在处理合规性要求的同时,在数据库级别跟踪与安全相关的事件。可以根据事件类型有选择地打开或关闭日志,包括数据访问、库结构更改、数据更改、安全故障和特权授予撤销。启用该功能后,响应这些事件的条目将自动记录并存储在任何给定Azure存储帐户指定的审计表中(表名称为“SQLDBAuditLogs20140928”),这也意味着将产生额外费用,因为它消耗的资源。此外,会有轻微的延迟影响(可能在几毫秒内),但不会对数据库的计算性能造成负面影响(因为审计服务是自给自足的,占用独立的计算资源)。指定存储帐户时,您可以选择指定是使用主密钥还是辅助密钥来设置对内容的安全访问。此设置旨在遵守某些内部法规或安全程序,加密保护存储内容的定期更改。在此期间重新生成一个键值,而其他键值保持不变。这样,您就可以确保安全相关事件的审计不间断地继续进行。此机制使用您选择的密钥自动生成共享访问签名(SAS),并且其访问权限仅限于表“SQLDBAuditLogs20140928”,只有写入权限。此外,我们还可以指定记录到SQLServer级别的事件类型。设置配置结果可以应用于同一SQLServer中托管的所有SQL数据库。您只需选择要继承审计设置的数据库。该菜单位于传统门户页面的“审计和安全”选项卡上。如果你使用预览版的门户,那么在审计页面,这个功能可以提高配置效率。在以上各操作界面中,您可以在传统门户的命令栏中将审核保存为默认命令(预览版门户中的标签为“保存为默认”)。此操作会将SQLServer审核设置重置为当前数据库审核设置。同步保持一致。此外,要使审计真正有效,您必须修改客户端或用户用来与SQL数据库交互的连接字符串。正确的配置字符串格式可以从门户页面获取,只需点击“Showconnectionstringwithsecurityenabled”链接即可,两个版本相同,界面会显示适用于ADO.NET、ODBC(包括Node.js)、PHP以及各种基于JDBC连接方式的连接字符串示例。它们与原来的连接字符串只有一处不同,就是增加了secure关键字,以区分安全模式下与目标SQLServer的连接。例如,如果ADO.NET的连接字符串最初具有以下形式:Server=tcp:server_name.database.windows.net,1433;Database=AdventureWorks2012;UserID=login_name;Password=login_password;Encrypt=True;TrustServerCertificate=False;连接超时=30;其中“server_name、login_name、login_password”分别代表主数据库中定义的服务器名、登录用户名和对应的密码,新增审计设置的连接字符串示例如下:Server=tcp:server_name.database.secure。windows.net,1433;Database=AdventureWorks2012;UserID=login_name;Password=login_password;Encrypt=True;TrustServerCertificate=False;ConnectionTimeout=30;请记住,带有审计配置的连接,与没有审计的连接一样,必须能够通过设置的网络防火墙。显然,以上设置并不能完全满足你的审计需求,因为没有审计标志的默认连接字符串仍然有效可用。要堵住这个安全漏洞,您可以禁用没有审计标志的连接。在两个门户界面上将“启用安全访问”选项从“可选”更改为“必需”。一旦启用审计功能并将其设置为必需选项,所有连接事件将记录在“SQLDBAuditLogs20140928”表中,存储在您选择的帐户中。您可以使用任何可以访问Azure表存储的现有工具来查看存储在其中的原始数据。MSDN博客上有它们的完整列表。此外,您可能还需要使用预配置的记分板模板,您可以在传统门户的“审计与安全”选项卡中点击“下载审计日志报告模板”或在“审计”页面中选择“在Excel中打开”预览门户页面“链接。该模板包括交互式和可自定义的PowerView和基于PowerPivot的报告,它们利用Excel2013的商业智能功能非常有效地简化了审计日志数据的分析。该模板包括用于在三个月内对七个数据库进行样本审计的样本数据。下载模板后,您还需要下载并安装适用于Excel的PowerQuery加载项。详情请参考Excel手册浏览文档《02如何在Excel中查看Azure SQL DB审计日志报表》。它会要求您将事件源配置为指向指定存储帐户的“SQLDBAuditLogs20140928”表,并可能调整记录限制(默认限制为100万,但如果需要可以增加到600万)。手册还包含几个表格页,包括以下内容(请注意,默认只有前五项可以直接显示,其他项可以通过电子表格右键菜单中的“取消隐藏”显示):定位。包括配置模板所需的步骤列表,以及指向详细说明的超链接;以及与每个视觉形式相关的简短报告描述。异常信息。显示事件概览。如有必要,可以进行进一步的研究,例如大型数据集的更改或无效的登录尝试,以及违反不太常用的安全原则。它还提供数据访问异常的报告显示百分比,这可能代表异常的应用程序使用情况。向下钻取。它支持获取更详细的统计信息,显示审计事件的不同方面,例如事件类型、目标数据库或用于访问的安全原则名称。事件类型分布。它基于多个维度提供了审计事件类型分布的综合视图。例如:目标数据库、月份和日期、星期几或小时模式等。事件时间分析。它有助于分析随时间变化的事件类型。默认情况下,它由两个图表组成:第一个显示数据访问、数据更改和存储过程执行事件;第二个显示成功登录的统计信息。使用为每个图标独立配置的事件类型切片,可以轻松添加或删除特定于区域的事件类型。数据库位置信息。它包含一个数据库位置列表(在我们的例子中对应的Azure数据中心位置)。只有在将电子表格设置为“显示隐藏的表格”后才能看到此信息。研究观点。它根据数据库位置表生成基于地图的可视化统计数据。它主要用于帮助识别事件类型的趋势。时间分析上枢轴和下枢轴。作为基础支撑数据,将在时间类型分析统计表中使用,该表不可修改。工作日统计。作为基础支撑数据,用于事件类型分布统计表。不应修改此表。事件访问周期统计。它提供随时间推移的聚合事件统计技术,用于预测分析。数据访问周期统计、数据更改周期统计、成功登录周期统计、数据库结构更改周期统计、存储过程周期统计。这些信息提供了一段时间内数据访问、数据变化、成功登录、库结构变化和存储过程调用事件的统计信息,也用于预测分析。值得注意的是,在Web应用程序中,使用相同的身份验证凭据代表用户连接到数据库是一种相对常见的做法。这些凭据是在应用程序级别配置的。尽管所有这些连接事件都记录在相应安全原则的审计日志中,但您无法区分它们。因此,可以在应用中获取实际的应用用户名,将用户名信息以参数的形式发送给SQL数据库,就可以解决这个问题。SQL数据库审计功能介绍到此结束。在以后的文章中,我们还将探讨此PaaS服务的其他最新增强功能。原文链接:www.searchdatabase.com.cn/showcontent_87269.htm
