SQL SERVER 2000的安全性测试

发表于:2008-8-06 13:40

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:网络转载

#
SQL
分享:

  一、SQL SERVER 2000的安全性

  数据库的安全性主要是指数据库的用户认证方式及其角色权限管理,保证合法用户访问数据库,合法用户只能存取被授权访问的资源。

  SQL Server 2000的用户认证方式有两种:

  1)  Windows身份验证:是和Window操作系统集成的,SQL SERVER的登录用户必须是WINDOWS用户和组,适用于windows的客户端。

  2)  SQL SERVER验证:登录用户是SQL SERVER自己建立的,可以不是WINDOWS用户,适用于非WINDOWS的客户端,例如unix、linux。

  具体采用哪种认证方式由SQL Server服务器的安全身份认证模式决定,如果身份认证模式是设定仅Windows身份验证模式则只能采用Windows身份验证;如果设定为混合模式,则Windows身份验证和SQL SERVER验证都可以。

  SQL Server安全性有3个层次:服务器安全、数据库安全、对象权限。

  服务器级别安全性包括登录帐户和服务器角色,在服务器级别的操作权限由登录帐户的固定服务器角色决定。

  登录帐户包括:

  1)  Windows登录帐户(域名\用户名)

  2)  标准SQL登录帐户(用户名)

  3)  内置的登录帐户(sa、本地或域的Administrator、内置的组Administrators)这三类帐户有最高的权限,是sysadmin服务器角色的成员。

  数据库级别安全性包括数据库用户和数据库角色,在数据库级别的操作权限由数据库用户的角色决定。默认数据库用户为dbo、guest,dbo映射登录帐户为sa(sysadmin服务器角色的成员), guest用户映射所有的登录帐户。登录帐户想访问某个数据库,则需为其建立该数据库访问帐户或者该数据库存在guest用户。

  数据库角色包括:

  1)  固定的标准数据库角色:是定义对所有表可以进行的操作。其中有一个特殊的角色:public,任何用户都具有public角色,角色名不能更改,权限可以进行更改,是定义所有用户可以对某一个或几个表可以进行的操作。

  2)  用户自定义的标准数据库角色:是定义对某一个或几个表可以进行的操作。

  3)  用户自定义的应用程序角色:是定义对某一个或几个表可以进行的操作。与用户无关,需要密码,在应用程序中激活生效。

  对象权限包括:

  1)  为表和视图授予的权限类别有SELECT、INSERT、UPDATE和DELETE语句权限以及DRI(REFERENCE)

  2)  为列授予权限(SELECT、UPDATE)

  3)  为存储过程和函数授予权限 ,只有EXEC一种

  4)  为数据库授予权限(语句权限:创建和备份等)

  5)  默认的权限或称暗示性权限:sysadmin, db_owner角色可以具有所有权限

  对象权限的操作有授予、回收、拒绝三种。

  综上所述,如果一个用户登录到SQL SERVER 2000后其具有哪些权限有如下规则:

  1)  权限累加原则,综合考虑登录用户的服务器角色、登录用户对应的数据库角色,角色的权限,单独赋予的对象权限,默认的角色权限等。

  2)  拒绝优先,不能拒绝的是默认的权限: sysadmin db_owner角色,sa、本地或域的Administrator、内置的组Administrators三类登录用户不能拒绝。

  3)  Public,应用程序角色优先,应用程序角色被激活后该用户只具有应用程序角色和public角色的权限,其所具有的其他角色失效。

  二、SQL SERVER 2000的安全性测试

  1、测试内容

  针对以上叙述的数据库安全性功能要求,对其进行分析,对其进行功能相关分类,将容易一起进行测试的内容放到一起,保证功能的覆盖同时保证测试用例的高效。具体确定如下测试内容:

  登录用户管理:登录用户的建立、修改、删除,验证服务器角色的作用

  数据库用户管理:数据库用户的建立、修改、删除,和登录用户的映射关系,验证固定数据库角色的作用

  角色管理:数据库自定义标准和应用程序角色的建立、删除、修改

  权限管理:分别给角色授权,给用户赋予角色,根据权限适用原则验证用户具有的权限是否正确,验证权限适用原则

  2、测试方法

  该测试为系统功能性测试,所以采用黑盒测试方法,以人工测试为主。

  3、测试用例设计

  针对每一个测试点,设计完整的测试用例,先考虑通过测试,验证功能的实现;再考虑失败测试。运用等价类、边界值、因果图、正交法等测试用例设计技术

  测试用例格式包括:用例编号、相关用例编号、输入及操作说明、预期结果以及功能是否正确的判断标志(评价标准)等。采用EXCEL格式模版,便于管理和扩充。

  几个典型的测试用例见测试用例设计.xls文档. 该文档有四个表单组成,分别表示上述四个测试内容列出的模块:登录用户管理、数据库用户管理、角色管理、权限管理。

  三、总结

  通过对SQL SERVER2000安全性测试的研究与实践,体会到测试需求的重要,一定对所测对象功能了解全面,通过相关资料、微软帮助等来帮助确定需求,综合考虑各种情况尤其默认情况,总结出了权限适用的原则。再根据需求确定测试计划,进行测试用例的设计。这次测试还是以验证功能为主,所以测试用例设计主要考虑功能的完全覆盖,对失败测试在时间允许条件下尽力去做,例如在登录用户建立时进行输入非法字符和超长字符,发现了其输入的边界值,并发现当用户名称输入大于128的字符时不给提示,自动截取128个字符,不给出任何提示,这很不友好,并且需要自己判断边界值。

《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号