一、概述:
Sql server 2000
是很大一部分企业使用的管理系统,很多企业选择了sql。Sql提供了很好的安全框架,提供了很多了安全指导,因此,我们应该很好的应该保障他的安全。但由于管理者对sql的安全没有提升到和windows系统安全的高度,对sql安全没有去重视,导致了很多损失。
二、本次课程主题:
主要阐述两部分内容:
1、
ms sql server 2000
的安全体系架构
2、
ms sql 2000
安全最佳实践。
3、
通过demo实验来演示身份验证机制。
三、首先具备的知识
了解windows 2000或2003的安全体系
理解ad的相关概念
熟练使用ms sql server 2000的经验
四、议程
Sql server 2000
安全模型(如何实现安全)
服务器级安全的实现(讨论sql服务器所以来的服务器,)
五、Sql 2000的安全模型
Sql 2000
安全模型是基于windows 安全模型实现的
Sql
的安全模型是三层体系架构,分别是系统安全、服务器安全、数据库安全三层构成。
1
、身份验证机制
一种是:Windows 身份验证模式(windows 去做验证的,只接受windows身份验证机制)
另一种是:混合模式(既有windows身份验证也有sql身份验证)
2
、两者的区别:
一个从安全上来讲 那一种更安全呢?安家应该比较清晰了,windows身份验证模式比较安全,因为只支持一种验证模式,而混合模式支持两种验证模式,验证模式越多其存在的不稳定因素也越多,所以说windows验证模型比较安全。
3
、微软开发两种验证模型的原因
Windows
身份验证机制依赖于windows帐户,对一些非windows平台用户不可能用windows身份验证 所以微软就开发了两种身份验证模式。对于不同的场景来选择不同的身份验证模式。
4
、Sql 2000安全模型
1
)安全管理级
保护服务器访问的安全
保护数据库访问的安全
成功的登录服务器并不会自动允许用户访问sql server 2000上的所有数据库,而必须授予用户访问数据库的权限。
2
)保护数据库对象的访问的安全
语句权限
Create database
,create table,create function
对象权限
Select
,insert,update,delete,references
Execute
六、demo演示windows身份验证和混合验证模式的区别:
环境: 服务器(域)+客户端【使用vpc来搭建的环境】
服务器是一个ad同时也装上了sql server 2000,客户端仅装了客户端管理工具。
体会两种登录模式的区别:
1、
先选择混合模式验证(如何针对windows帐户登录):
在客户端登录域使用sqluser1(此帐号是域中的一个帐号,是windows帐号)帐号来登录域(此时dc已经进行了验证),登录进来后打开查询分析器,选择连接,有两种登录sql登录模式: windows身份验证和sql server身份验证,此时当选择使用windows帐号登录时大家考虑一下能否登录上去?答案是不能登录到数据库中的。原因:windows帐户能够链接到sql必须要映射到sql登录,而此时sqluser1没有映进来。(如何映射到sql登录一会会谈到)
如果选sql server身份验证 输入用户名密码则可以登录到sql。如何使用windows帐号登录到sql中?:打开企业管理器―安全性--登录―右键新建登录,选择windows登录帐号,选择允许还是拒绝。
2、
仅windows
如果客户端利用正确的密码能否链接到sql中呢?客户端可以用windows链接过来而不能用sa sql帐号登录进来,因为现在sql仅支持windows登录。
3、
对象的权限分配
改成混合模式
在客户端使用windows和混合模式链接打开两个查询分析器,大家会看到区别:一个可以看到model数据库(sa登录),另一个不可以看到(windows登录)。原因 刚才提到的经过sql验证并不一定可以访问某个数据库(数据库的三层安全机制),windows帐号要想登录sql就必须影射到“登录”中,而要向访问某个库也需要把这个帐号影射到相应的库中(比如在model中的“用户”中新建数据库用户去影射sqluser1)。因此,降到这里我们可以看到windows用户要想登录sql,windows 的帐户或者组要影射到sql的登录中,而sql的登录要影射到数据库的用户。
4、
建立sql帐号登录
略
六、服务器级的安全实现
1
、文件系统
Ntfs
分区 ---文件和访问控制类表以及文件加密(efs)
2
、防火墙
在安装sql server之前,应确保外围防火墙过滤掉发送到tcp端口1433以及用户数据报协议(udp)端口1434的数据报
如果将服务器安装到域内部,应配置内部防火墙润需windows身份验证。打开kerberos或ntlm身份验证所使用的端口。
3
、禁用netbios和smb
可以对抗用户枚举的威胁
Netbios
使用下列端口
Udp/137/138 tcp/139
(如何在sql上禁用 netbios 和smb)
七、安装sql注意事项
运行sql安装之前
规划sql安装是应隔离各个组件。这样可以减少在一个组件泄密的情况下,被利用来进一部破坏系统中其他组件的可能性。
最佳做法:
将一台计算机专座数据库服务器
不要在域控制器上安装sql
不要在同一台计算机上运行iis和sql
如果必须在一台计算机上运行多个服务,请在各自的windows帐户下运行各个服务
在非系统卷上安装sql程序和数据库文件,以便
安装sql server
最好选择自定义安装
尽可能使用windows身份验证
Sa
帐号应始终拥有强密码
即便在配置为要求windows身份验证的服务器上也是如此
八、服务器级别安全演示
服务器级安全的实现
使用mbsa扫描sql
禁用netbios和smb
启用登录审核
使用sql事件探察器进行常规审核
1
、使用mbsa扫描sql:下载mbsa软件(略)
2
、如何禁用netbios和bms :做法 把microsoft网络客户端和microsoft网络的文件和打印共享卸载掉(将smb禁用掉了)
3
、设备管理-非即插即用-显示隐藏文件―netbios…….. 禁用
注:本来有几张演示图片,但是链接出了点问题。所以就没有发出来,等有时间重新上传后在给大家添上