详解微软Microsoft SQL Server 2005安全策略.doc
文本预览下载声明
详解微软Microsoft SQL Server 2005的安全策略 SQL服务器2005提供了验证和授权方面的很多改进,还有支持加密技术——这使得数据库的设计和执行更加安全。Windows 2003服务器是微软下线的第一个标榜着“默认安全”的服务器,这个服务器锁定在默认状态下,你不得不去分别的激活每一个你想得到的服务。SQL服务器2005上:整个数据库服务器被锁定在默认状态下,每项服务和特性都要在明确的被激活才能获得。正因为如此,SQL服务器和SQL服务器界面配置工具一同发行,图1这样你就可以在安装时决定哪项服务和特性处在激活状态。
验证
验证是第一个必须成功完成的项目,以便于得到登陆SQL服务器的权限,图2阐明了该安全概念的模式。
图2和以前版本的相似,SQL服务器2005支持Windows和复合验证两种模式,微软建议使用Windows验证模式作为安全的保障。在该模式下,安全检查将针对现有目录而执行。但是这种模式的缺点是用户和数据库服务器必须存在于同一现有目录域下。SQL服务器时,SQL服务器将提交登陆凭证。该配置在一些方案中很敏感,但是缺点就是你不能够像现有目录那样使用安全的基础配置。SQL服务器2005的一个新功能就是,当你使用Windows验证模式时,它可以在验证过程中管理密码和退出策略。你可以管理帐户的权限,比如增强式密码和数据有效期。然而,只有在Windows 2003 Server系统中安装的SQL 2005才拥有这样的功能。在其他的Windows操作平台上这些功能的应用编程接口(API)不可用。1、?密码长度至少6字符(SQL服务器支持的密码的长度为1-128字符)。2、?密码必须使用不同类型的字符(大写字母、小写字母、数字、特殊符号等)。3、?密码中间不能出现Admin, Administrator, Password, sa或 sysadmin。4、?除了这些限制外,密码不能为空。SQL语句CREATE LOGIN来使用CHECK_EXPIRATION和CHECK_POLICY扩展名 CHECK_EXPIRATION控制登陆的有效期,CHECK_POLICY激活上述的密码限制策略。MUST_CHANGE使用户在第一次登陆时可以改变密码。(SQL服务器2005测试第二版目前不支持该功能),表1列出了这些新功能的代码:
1CREATE LOGIN Paul WITH PASSWORD=P@ssw0rd1MUST_CHANGE, CHECK_EXPIRATION = ON,CHECK_POLICY = ON在Windows Server 2003操作平台运行的SQL服务器2005也可支持端点验证,这样可以确保当SQL服务器通过Http.sys暴露XML Web服务时能够安全的交流信息。
当用户成功通过SQL服务器的验证后,授权程序将决定用户在数据库中有哪些权利。在这个部分,SQL服务器2005有两个新的特性:l?用户和模式(Schema)分离l?执行语境
Schema)分离Schema)是一个你可以有逻辑的将数据库对象(表格、存储规程、视图等)分类的容器。它和.NET Framework类库里的命名空间一样。 SQL服务器内的模式也可以拥有一个系主,你可以规定在给定模式里的所有对象都属于同一个系主。SQL服务器2000没有很好的执行模式:模式的名称与用户名相同。所以,在模式和数据库对象的系主之间有直接的关系(见图3)。(图片较大,请拉动滚动条观看)?3SQL服务器2000内的一个大问题就是模式必须使用一个全当限名称(模式.对象名称)。但是当你从数据库内撤销一个用户时,那么对象的全当限名称就改变了。不幸的是,你在数据库内做的这项改变在客户端查询中也改变了,而且这样的改变有时候代价昂贵。在SQL服务器2005中,模式是数据库中的一个单独对象,有它自己的名字和系主,和用户不再有关系(见图4)。图4现在你可以在数据库中删除和增加用户,而不用在软件中更改(即不是在客户端也不是在数据库端)。此外,你可以给模式指派权限来控制在特定模式中访问对象的权限。表二显示了在SQL服务器2005中的模式的使用。该代码也可以从Schemas.sql文件中下载获得。
2USE masterGO
-- Create database loginsCREATE LOGIN Paul WITH PASSWORD=p@ssw0rd1CREATE LOGIN Mary WITH PASSWORD=p@ssw0rd1
USE TestDatabaseGOCREATE USER Pa
显示全部