第十三周翻译

SQL Server的阶梯安全级别1:SQL Server安全的概述

通过吉利,2014/06/04

该系列

本文是楼梯系列的一部分:SQL Server安全楼梯

SQL Server拥有一切您需要确保您的服务器和数据对今天的复杂攻击。 但在你可以使用这些有效安全特性,您需要了解你所面对的威胁和一些基本的安全概念。 第一阶梯水平提供了基础,这样您就可以充分利用安全特性在SQL Server上浪费时间特性,什么都不做来防止特定威胁您的数据。

关系数据库是用于一个了不起的各种连接的应用程序从一系列令人眼花缭乱的客户通过广泛分布的网络,特别是互联网,这使得数据访问几乎任何人,任何地方。 数据库可以保存人类知识的一个重要部分,包括高度敏感的个人信息和关键数据,使得国际贸易的工作。

这些特征让数据库有吸引力的目标想窃取数据或伤害主人的人篡改。 确保您的数据安全是一个关键的部分配置SQL Server和开发应用程序,使用它来存储数据。 这楼梯探讨了SQL Server 2012安全的基础知识,这样您就可以保护您的数据和服务器资源,获得颗粒如你需要防范的安全威胁,可以影响你的数据。 大部分的信息将适用于SQL Server的早期版本中,回到SQL Server 2005,因为这是当微软检修安全产品。 但我还将讨论功能只有在SQL Server 2012和以后。

SQL Server拥有一切您需要确保您的服务器和数据对今天的复杂攻击。 但在你可以使用这些有效安全特性,您需要了解你所面对的威胁和一些基本的安全概念。 第一阶梯水平提供了基础,这样您就可以充分利用安全特性在SQL Server上浪费时间特性,什么都不做来防止特定威胁您的数据。

的威胁

识别威胁的一组特定的数据和它的服务器是一个重要的第一步,了解如何配置和使用SQL server来保护您的数据。 您创建一个数据库来管理你的小学足球队的设备库存可能不需要严密的安全措施。 您可能需要至少提供最小的访问控制,这样团队成员不能随机变化的记录盒的足球。 但它可能不是世界末日,如果有人在偷或混乱的数据。

另一方面,如果数据库对孩子团队中的个人资料,如家庭地址和电话号码,你可能想要加强安全保护(你可能是法律要求这样做)。 你可能通过隔离保护隐私数据的访问,这样几乎任何访问数据库可以改变设备数据,但只有少数可以访问个人数据。 如果数据包括妈妈和爸爸的信用卡号码,你需要极其小心地保护这些数据。

有很多数据可能容易受到的威胁,和下面的列表是一个更常见的很少。 很多在网络上可用的资源,可以帮助您分析您的具体情况的风险。 这个列表是旨在帮助您开始考虑威胁和如何使用SQL Server来对抗他们的特点或者至少减少数据的接触他们。

  • 盗窃数据:盗窃数据覆盖各种类型的未经授权的访问您的数据,是否由外人侵入您的网络或肮脏的内幕扫描名人。 这可能涉及到阅读的快感被禁止的信息或由潜在动机出售偷来的信用卡号码。
  • 数据破坏:黑客获得访问您的数据可以改变它,这可能会导致一系列的问题,从公共尴尬关闭整个操作(可能发生在你所有的客户记录被删除)
  • 数据损坏:最大的一个好处是将数据存储在关系数据库中,数据库本身可以帮助保护数据的完整性。 数据完整性包括要求每个订单都有一个关联的客户,日期存储在一个日期字段真正代表一个日历,和百分比字段只包含值在0100之间。 数据完整性可能不是你想到的第一件事和安全连接,但这是保护你的数据的一个重要组成部分。
  • 非法储存:在过去,您收集的数据业务过程中自己的生意。 但是现在无数联邦法律存在于美国 在欧盟和其他国家,控制类型的个人数据可以存储,你怎么存储它,以及如何保护它。 对违规行为的惩罚可以severe-both罚款,损害贵公司的公众形象。

这阶梯覆盖在SQL Server 2012的特性,可以帮助减轻这些威胁和许多其他人。 你必须了解威胁您的数据知道如何防止它们。 不要浪费时间在不防范的措施具体威胁到您的特定数据。 你将永远无法涵盖所有假设的情况下,而最坏的情况下,你会让你的数据库服务器完全是由其面向的用户无法使用。 安全始终是一个妥协,平衡风险与必要的时间和金钱来实现和维护的保障措施。

安全设计理念

早期2002年比尔·盖茨派出他的臭名昭著的可信计算的备忘录,这被证明是一个转折点在微软如何考虑和实现安全的产品。 由此产生的可信赖的计算项目,根据微软的网站”,专注于创造和提供安全、私人和可靠的计算基于合理的商业实践经验。 我们的目标是一个更安全、更可信网络。

换句话说,在十年前微软非常重视安全。 SQL Server的第一个版本发布后,这种变化是SQL Server 2005,整个产品,微软完全彻底的安全。 此后,每个版本的SQL Server保留,新的安全基础设施而逐步提高,添加新的功能,提高安全性和应对新出现的威胁。

微软称其在SQL Server 2005的日子,值得信赖的计算影响SQL Server的发展通过定义产品的安全设计的四大支柱:

  • 安全的设计:微软进行了广泛威胁分析和设计和代码的安全审计和交互识别点,攻击者可以获得立足之地到服务器和数据。 结果就是微软SQL Server设计保护机密性、完整性和可用性的数据存储。
  • 缺省安全:开箱即用的,SQL Server安装并激活默认只有关键核心数据库组件。 这意味着特性不是核心数据库功能的关键是没有安装或已安装但未激活。 这个功能不是安装是不容易受到攻击。 你必须有意识地和故意安装或激活非核心功能。 这可以防止许多攻击特性安装了你可能不知道,因为你从未使用过它们。
  • 安全的部署:微软提供了工具和支持安全地安装SQL Server和保持安全。 SQL服务器配置工具帮助你安全地配置服务器。 最重要的是,现在可以使用SQL Server作为更新在线微软更新服务的一部分,所以很容易得到安全更新和补丁。
  • 安全通过沟通:微软已经建立了一个复杂的基础设施来收集漏洞在其产品信息。 但是所有的这些信息是无用的,如果停留在微软。 公司致力于沟通新漏洞,积极修补,以防止他们,航运定期更新其图书在线帮助系统,以反映新的安全信息。

这种这只是安全的哲学影响整个产品。 虽然SQL Server是相当安全的,当你创建数据库和安装服务,你必须做出明智的安全选择保持SQL Server实例的安全。 也需要工作,提高警惕,保持生产数据库服务器安全。

有时记住保护数据的最好办法就是不把它放在批文怎么示例中,只存储信用卡号码如果你有一个绝对有效需要挂在这类信息(并没有许多)。 如果你没有这样的需要,你应该处理信用卡交易并将结果存储,但不是信用卡信息本身。 你不能遭受安全臀位数据你没有!

安全的两个阶段

SQL服务器的安全模型,像这样的窗口,是一个两阶段的过程,允许一个用户或服务器中的其他登录访问受保护的资源:

  • 身份验证:用户登录时,验证,获得访问服务器。 身份验证回答这个问题,“你是谁? ”,并要求用户证明,通常通过提供的密码和用户名,但是其他形式的证据正变得越来越受欢迎。
  • 授权:用户只能够与那些SQL Server像数据库、表和存储程序,她已经许可。 授权回答了这个问题,“你能做什么?”

一个用户可以登录到SQL Server,但是除非他们有许可做某事,例如访问一个数据库,它就不会做的很好。 所以你不仅需要为您的用户提供身份验证凭证,您还需要授权他们访问数据通过定义在每个数据库占他们需要使用一次身份验证。

当你想到它,需要在每个数据库用户帐户是非常合理的。 否则,防止用户登录数据库SQL Server,然后使用任何他们想要什么有变化的这一概念,以适应不同的场景,但这是基本的安全状态。

后来水平在这个楼梯包括身份验证和授权,你将学习如何实现各种安全特性在SQL Server来防止威胁你确定你的数据。

SQL Server安全术语

当你使用SQL Server和其他产品的安全,你会遇到各种各样的专业术语。 这里有一些常见的术语和他们的意思在数据库安全的背景下。

身份验证:正如上面提到的,身份验证是一个过程,积极识别一个人要求她证明她与登录相关的人。 它回答了这个问题,你是谁?

授权:一旦该系统对用户进行身份验证、授权(如上所述)决定了用户的权限内的服务器或数据库。 这个回答了这个问题,你能做什么现在,你呢?

:Windows,一组是一个校长,与之关联的登录。 任何权限授予组授予相关的登录。

模拟:所有窗口过程,包括各种SQL服务器进程,运行在一个特定的安全上下文,通常导致的主要过程开始。 模拟发生在过程暂时需要在不同的安全上下文。 这是一个非常强大的和必要的能力,但伴随着潜在的滥用。

登录:登录是一个校长,一定程度的访问对象在一个服务器实例。 在常见的使用,登录用户经常交替使用。 但是一个SQL Server登录一个账户用于从外部访问服务器。 登录有时包括权利访问服务器范围的对象,如配置信息,但通常不授予任何权利在数据库中。

许可:权限是有权访问受保护的资源,如从一个表中读取数据或创建新的数据库服务器级别的。 权限通常意味着其他权限,根据主题许可的范围。

校长:主要是任何用户或代码组件,可以在SQL Server接收权限访问受保护的资源。

特权:特权是广泛的权利或许可主体。 这个词有时可以互换与许可,这通常意味着一个特定的,狭窄的正确。 特权意味着一套更广泛的权限。

角色:SQL Server的作用类似于Windows,但仅限于SQL Server实例的范围。 像一群,你可以登录和用户分配给一个角色,这传达了登录和用户角色的所有权限。

用户:用户主要有某种程度的访问对象在一个特定的数据库。 用户通常映射到一个登录。 简而言之,登录访问SQL服务器实例,以及用户对数据的访问。

你会看到整个楼梯使用这些术语。

管理和执行SQL Server安全

如同大多数管理和管理任务在SQL Server,几乎总是有多种方法来管理和实现安全功能,包括使用管理工作室的图形界面,编写和执行t - SQL代码,使用SQL Server的集成PowerShell命令行迷在我们中间。 使用PowerShell是这阶梯的范围之外,但在整个楼梯你会看到很多使用另外两个技术的例子。 (了解PowerShellSQL Server之间的紧密结合,检查SQL PowerShell的阶梯)

使用管理工作室的安全特性,通常你会在对象资源管理器中右键单击一个合适的对象,并选择属性,然后使用适当的页面对话框修改你想要的。 例如,设置的权限AdventureWorksLT2012示例数据库,右键单击对象资源管理器的数据库名称,选择属性,然后选择权限选项卡,如图1.1所示。

 

1.1:权限页面修改AdventureWorksLT2012数据库的安全性。

同时在数据库和服务器实例级别,对象资源管理器包括一个安全节点,允许您管理和执行其他类型的安全特性。 图1.2显示了该节点的AdventureWorksLT2012数据库和服务器实例级别的。 每个节点包含突出显示的两个不同的子节点,给你对安全对象的访问适当的范围的选择。

 

1.2:安全对象在对象资源管理器的服务器和数据库级。

你会发现各种安全特性藏在管理工作室及其各种窗口,所以值得做一些探索你遇到他们。

的改变之一介绍了SQL Server 2005的安全检查是允许权限分配在更细粒度的方法。 当你将学习在以后的水平,您可以将多种权限分配给各种主体为了实现的重要的安全原则最小特权——想法,每个主体都有权限做他们需要做什么:不多也不少。 随着这一变化,微软加强包括大力支持的t - sql语言直接操纵安全对象。

清单1.1中的代码显示了一个简单的例子的t - sql可以用来创建安全对象。 代码首先创建一个服务器级登录与现有的Windows登录。 然后,AdventureWorks2012数据库,代码创建一个用户映射到登录,以及向用户分配一个默认的模式。 最后的代码显示了如何删除一个用户在数据库中创建一个用户映射到相同的登录。 当然,很做作,但它显示在代码中你能做什么。 或在管理工作室的GUI工具,如果你喜欢。

——添加一个Windows登录SQL Server

创建从WINDOWS登录(马拉松\ JoeStairway);

 

使用AdventureWorks2012;

 

——用户登录名称相同的名称

创建用户(马拉松\ JoeStairway)登录(马拉松\ JoeStairway)

DEFAULT_SCHEMA =生产;

 

,或者重命名数据库中的用户

降低用户(马拉松\ JoeStairway);

创建用户登录(马拉松\ JoeStairway);

 

——查询元数据显示,用户被创建

从系统选择*。 database_principals name = '马拉松\ JoeStairway ';

从系统选择*。 database_principals name =“”;

清单1.1:示例代码创建服务器登录用户和数据库。

如果你想尝试运行这段代码,你可能会有一些变化需要放在第一位。 除非你的机器上马拉松现有的用户名JoeStairway,你需要改变这些名字在代码中。 创建数据库用户的代码AdventureWorks2012并使用它生产模式,所以你会需要安装数据库或者更改代码,以使用另一个数据库和一个现有的模式。 但您可能需要安装AdventureWorks套样本数据库,因为这楼梯将频繁使用。

总结

这第一级楼梯提供了基本的安全概念的概述在SQL Server 2012。 你学过的一些比较常见的威胁数据,并探索了SQL Server安全背后的设计理念。 您了解了两个阶段的安全身份验证和授权,学到了一些安全条款,您将看到整个楼梯,看到,您可以管理并实现安全通过管理工作室的GUI工具以及t - sql代码。

在接下来的级别,您将了解更多关于如何在SQL Server身份验证工作和身份验证选项。

 

这篇文章的一部分SQL Server安全楼梯楼梯

注册我们的RSS提要并尽快通知我们发布一个新的水平在楼梯! 

 

posted @ 2017-12-11 21:34  黄百万  阅读(134)  评论(0编辑  收藏  举报