登录 / 注册
IT168技术开发频道
IT168首页 > 技术开发 > 技术开发技术 > 正文

SQL Server 2012数据库服务器安全管理

2013-04-24 21:43    it168网站 原创  作者: 杜飞 编辑: 王玉圆

  【IT168 专稿】在数据库系统的日常运维中,安全性是最为重要,也是最具有挑战性的一个方面。任何一个DBA都希望服务器足够的安全,在不增加成本的情况下保证数据万无一失。但事实上是,只要用户能够访问数据,就会有安全漏洞,因此大家应该对安全性重新认识,安全性并不是保证系统完全不受攻击,而是把风险减少,并对风险采取必要的应对措施。本文将介绍SQL Server 2012就加强数据库服务器的安全做了哪些努力?例如SQL Server身份验证模式、登录、数据库角色、服务器角色、应用程序角色、安全审核、数据加密、数据库认证等。其中有一些功能在早期SQL Server中就已经存在。但SQL Server 2012又进一步做了增强,例如增加了用户自定义服务器角色功能,早期DBA在服务器角色方面只能依赖系统自带的9个固定服务器角色,要么是加入某个角色,要么是退出某个角色,但不能根据实际需要创建一个完全适合自己的服务器角色,使得管理不够灵活。但在SQL Server 2012中利用自定义服务器角色可以解决此问题。好了,下面咱们就来介绍一下SQL Server2012中与服务器安全相关的几个技术。

  SQL Server身份验证

  SQL Server一直提供两种对用户进行身份验证的模式,Widows模式和混合模式。默认模式是Windows身份验证模式,其使用的是操作系统的身份验证机制对需要访问服务器的 凭据进行身份验证,从而提供了很高的安全级别。而基于SQL Server和Windows身份验证模式的混合验证模式,允许基于Windows和基于SQL Server的身份验证。混合模式创建的登录名没有在Windows中创建,这可以实现不属于企业内的用户通过身份验证,并获得访问数据库中安全对象的权限。当使用SQL Server登录时,SQL Server将用户名和密码信息存储在Master数据库中。在决定身份验证方式时,需要确定用户将如何连接到数据库。如果SQL Server和数据库用户属于同一个活动目录森林,则推荐使用Windows身份验证以简化创建和管理登录名的过程。反之,则需要考虑使用基于SQL的登录名来实现用户的身份验证。

  在SQL Server服务器安装的过程中可以进行身份验证模式的选择,在安装成功后,还可以通过SSMS进行更改,如下图所示:

SQL Server 2012数据库服务器安全管理

  在此界面中,用户可以查看当前的身份验证模式以及进行更改。当然也可以通过存储过程来进行更改,如把身份验证模式改为混合验证可以使用的命令是:

SQL Server 2012数据库服务器安全管理

  如果需要把身份验证模式改为Windows,只需要将上述命令中的DWORD的值改为1,即可,如下图所示:

SQL Server 2012数据库服务器安全管理

  另外建议,在生产环境中尽量不要使用Sa用户,特别是多人具有管理权限时更要多加注意。因为多人使用Sa帐号登录,则不能使用审核功能与特定的操作员进行关联,一旦出现操作上的问题,则无法问责。

  登录

  正因为SQL Server存在两种不同机制的身份验证方式,所以同时提供了两种登录名。Windows登录名与存储在AD或者本地SAM数据库中的用户相关联。SQL登录名则依赖于SQL Server存储和管理帐户信息。

  Windows登录名受限于AD域或者是本地的密码策略限制,可以通过此策略设置复杂性要求、无效登录、过期时间等。当用户在以SQL Server时,活动目录或操作系统已经确认了用户的身份。当使用SQL Server登录的时候,SQL Server就要负责确认用户的身份。SQL Server将登录名和密码哈希值都在master数据库中。但从SQL Server 2008开始,不会再为BUILTIN\Administrators组创建登录名,以免使得服务器上具有本地管理权限的任何人都可以登录SQL 服务器。但在安装的过程中,会有一个界面提示添加管理员。

  下面我们看几个关于登录的几个小示例:

  ---创建WINDOWS登录

  create login [dufei\dufei] from windows with default_database=master

  注意,计算机名\用户名,必须使用 [ ]括起来。而不能使用双引号。

  -- 创建 SQL Server 登录,密码同时满足策略要求。

  create login df

  with password='DUfei2008',default_database=master

  -- 创建 SQL Server 登录用户,要求必须满足策略的一些要求。

  create login df with password='DUfei2008' must_change,

  default_database=master,check_expiration=on,check_policy=on

  其中,must_change参数表示下次登录时必须更改密码;check_expiration表示过期设置, policy表示密码复杂度是否够复杂。

  数据库角色

  SQL Server的数据库角色分为两大类,固定数据库角色和用户自定义数据库角色,固定数据库角色只能把权限委托给用户,唯一能发一改变的就是成员资格。而用户自定义的数据库角色对管理权限和数据库中的资源的访问提供了更多的控制。在使用基于角色的安全模型中,可以经常 发现内置的安全主体提供了过多的访问权限,或者是没有提供足够的权限。在这种情况下用户就可以创建用户自定义的角色,以控制一组用户对安全对象的访问。从概念上讲,数据库角色和Windows角色很相似。用户可以创建一个数据库角色来标识一组需要访问共同资源的用户,或者也可以用角色来标识授予库中的一个安全对象的权限。不管角色的用途是什么,其功能应有角色名称明确指出,也就是说角色名一定要有意义。

  创建一个自定义数据库角色也非常简单,方法是在某个指定的数据库中,找到安全性选项卡,展开其中的角色,在数据库角色中点击新建,如下图所示:

  然后,就出现下图所示的个界面,系统会提示为此角色提供一个名称,同时为该角色指定一个所有者。

数据库角色

  在此界面中还可以为该角色选择现有的架构,并添加用户作为这一角色的成员。在安全对象和 扩展属性选项卡中,还可以分别用来指派权限或者是设置额外属性。

内容导航
关键字: 安全 , SQL Server 2012
  • IT168企业级IT168企业级
  • IT168文库IT168文库

扫一扫关注

行车视线文章推荐

首页 评论 返回顶部