SQL Server2005数据库安全策略研究
摘要:SQL Server2005数据库是应用较广的一种关系型的数据库,存储着大量的数据,一旦数据泄密或遭到破坏后果非常严重。探讨了SQL Server2005的安全机制、访问控制安全策略及安全管理策略。
关键词:SQL Server2005;数据安全;数据库1SQL Server 2005的安全机制
sql server两种身份验证模式数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。SQL Server2005数据库的安全机制包括验证和授权两种,验证是在用户登录操作系统和SQL Server 2005时进行的,即要求用户输入用户名、密码即身份验证,只有通过了身份验证后才可以进入SQL Server2005系统,但此时并不一定能查看数据。授权是分配权限,即给指定的用户对指定的数据库分配指定的权限,登录SQL Server 2005的用户只有得到相应的授权后才可以对数据库进行所得授权范围内的操作。SQL Server 2005的安全机制划分四个级别,第一级为登录操作系统,第二级为登录SQL Server 2005,第三级为允许用户与数据库相连,第四级为允许用户拥有数据库中一个对象的访问权限。前两级是属于验证过程,后两级是属于授权过程。SQL Server 2005的安全机制以如图1所示。
2SQL Server2005的访问控制安全策略
2.1使用更安全的NTFS文件系统
NTFS文件系统比FAT32更加稳定,通过使用标准的事务处理日
志和恢复技术来保证分区的一致性。在发生系统失败事件时,NTFS 使用日志文件和检查点信息自动恢复文件系统的一致性,NTFS是可以恢复的文件系统。另外,NTFS比FAT32更加安全,它可以为共享资源、文件夹以及文件设置访问许可权限,它有审核策略、安全日制,通过这些措施使安全隐患降到最低。因此在安装SQL Server 2005时安装在NTFS文件系统中,会更加安全可靠。
2.2账号的安全管理
SQL Server 2005支持两种登录模式:“仅Windows身份验证模式”和“混合模式”。“仅Windows身份验证模式”限于合法的Windows 用户,要访问SQL Server 2005之前就被操作系统先验证,减少了直接攻击的可能性,因此在配置SQL Server 2005时,尽量选择“仅Windows身份验证模式”。另外,SQL Server 2005中默认的两个用户SA(管理员用户)和Guest(客人用户)是公开的,最容易受到攻击者的攻击,因此需要禁用这两个用户。如果不希望操作系统管理员通过操作系统登陆而访问SQL Server 2005访问数据库,可以在账号管理中把系统账号“BUILTIN/Administrators”删除。
2.3删除安全隐患
SQL Server 2005软件中存在一些安全隐患,需要删除有安全问题的SQL程序、危险函数、不安全的扩
展存储过程等。有安全问题的SQL程序容易引起SQL注入攻击,即攻击者向SQL程序中插入一些SQL语句,通过在应用程序中预先定义好的查询语句结尾加上额外的SQL语句元素,欺骗数据库服务器执行非授权的任意查询。
SQL Server 2005中攻击者可以利用Opendatasource函数和Openrowset函数等对攻击目标的数据库挂码,可以轻易地获得目标数据库,以及服务器的控制权限,获得数据库名称、表名、字段名、字段值等重要信息,因此必须删除类似的函数。SQL Server 2005中有一些存储过程容易被攻击者利用,这些过程主要有xp_cmdshell、Xp_regaddmulti-string、Xp_regdeletekey、Xp_regdeletevalue、sp-OACreate、sp_OADestroy、sp_OAMethod、xp_regdeletevalue、xp_regenumvalues、xp_regread、xp_regremovemultistring、xp_regwrite、xp_dirtree、xp_fileexist、xp_getnetname、xp_terminate_process、xp_makewebtask、xp_readwebtask、xp_addtask、xp_add_job,建议全部删除这些存储过程。
2.4更改1433端口,并隐藏SQL Server实例
SQL Server 2005服务时默认使用TCP-1433,UDP-1434两个端口,1433用于SQL Server 2005对外提供服务,1434用于向请求者返回SQL Server 2005使用了哪个TCP/IP端口。因此在配置SQL Server 2005时要把1433端口修改成别的端口,以禁止对试图枚举网络上现有的SQL Server 客户端所发出的广
播作出响应,这样攻击者不会很轻易地知道SQL Server 2005使用了什么端口。但是攻击者通过1434商品的UDP探测很容易知道SQL Server 2005使用了什么TCP/IP端口。因此在配置SQL Server 2005的过程中还需要在实例属性中选择TCP/IP协议属性,隐藏SQL Server实例,攻击者就不能用1434来探测攻击目标的TCP/IP端口了(除非用Port Scan)。
另外,加强日志记录,及时更新SQL Server 2005修复系统漏洞,也可以增强SQL Server 2005的安全性。
3SQL Server2005的安全管理策略
3.1使用视图对数据源进行隔离
视图是数据库中的一个对象,是从一个或多个数据表或视图导出的虚拟表,当表的数据发生变化时,视图中的数据也会随之发生变化。视图能限制用户访问的数据量,并能隔离数据源。当一个用户需要查看数据库的某些数据,而不是全部数据时,如果SQL Server 2005管理员授予用户访问数据库或表的权限,容易造成数据泄露,威胁数据库的安全。此时,管理员可以将用户需要访问的数据制作成视图,用户直接查看视图,这样可以减少用户访问不需要访问的原数据。另外,通过视图可以将用户与存取对象隔离,用户只能看到视图,不能直接访问存取对象,因而保证了数据源的安全性。3.2使用系统存储存储过程是由一些SQL语句和控制语句组成的被封装起来的过程,它驻留在数据库中,可以被客户应用程序
调用,也可以从另一个过程或触发器调用。它的参数可以被传递和返回。与应用程序中的函数过程类似,存储过程可以通过名字来调用,而且它们同样有输入参数和输出参数。在某些情况下需要赋予用户在数据库中执行一个或多个任务能力,但出于安全性方面的考虑,可能无法或不愿意赋予那个用户对数据源的许可,那么可以通过建立存储过程达到目的,因为存储过程可以直接访问数据库和视图,从而保护了数据的安全。
3.3加强应用系统的安全
程序员会将数据库连接信息存放于配置文件中,在使用方便的同时带来了系统安全问题。为保证数据库安全,尽量把数据库连接信息加密以后存入源码中,并同时编译生成中间代码,如C#的. dll 文件或Java 的. class 文件。要过滤用户输入的敏感字符、关键字符等,如单引号,“create”、“drop”、“Add”等,以保护数据库的安全性。同时也能够有效地保护数据防止意外泄漏。当程序出现错误时,IIS 系统会自动提示错误类型,入侵者可以通过ISS提示的错误信息进行入侵,为了保护SQL Server 2005数据库中数据的安全,可以自定义错误,不管程序出现什么类型的错误,都将错误提示指向自定义的页面,即http 500错误,使入侵者无法根据错误提示来获得有利入侵的信息。
另外及时对SQL Server2005数据库进行数据备份,对数据库进行加密,使用服务器角、数据库角等都可以增强数据的安全性。
4结语
SQL Server 2005数据库的安全是一个系统的、全面的问题,还涉及到计算机操作系统、网络系统的安全,任一环节的问题都可能影响SQL Server2005数据库的安全。因而SQL Server 2005数据库管理员必须全面了解SQL Server 2005的安全机制,不断地提升安全管理策略,以确保数据安全。
参考文献:
[1]况莉莉.SQL Server2005数据库访问的安全措施[J].淮南职业技术学院学报,2011(6).
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论