第 17 章 sql server 2008 安全性管理

25
第 17 第 SQL Server 2008 第第第第第 SQL Server 第第第第第第第第第第第第第第第 第第第第第第第 第第第第第 。, 第第第第第第第第第第第第第第第第第第第第第第 第第第第第第第 第第第第第第第 。, SQL Server 第第第第第第第第第第

Upload: halla-chan

Post on 03-Jan-2016

114 views

Category:

Documents


0 download

DESCRIPTION

第 17 章 SQL Server 2008 安全性管理. SQL Server 包含各种精确的可配置的安全功能。使用这些功能,管理员可实施针对其所处环境的特定安全风险优化的深度防御。通过本章内容,读者应掌握有关 SQL Server 数据库引擎的安全信息。. 17.1 SQL Server 2008 安全性. SQL Server 2008 具有了最新的安全技术,以保证数据的安全。微软公司利用自己 Windows 操作系统产品的安全性设置,将 SQL Server 的安全性建构在其上,并且增加了专门的数据安全管理等级。这些机制保证了数据库的访问层次与数据安全 。. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第 17 章   SQL Server 2008 安全性管理

第 17 章 SQL Server 2008 安全性管理

SQL Server 包含各种精确的可配置的安全功能。使用这些功能,管理员可实施针对其所处环境的特定安全风险优化的深度防御。通过本章内容,读者应掌握有关 SQL Server 数据库引擎的安全信息。

Page 2: 第 17 章   SQL Server 2008 安全性管理

17.1 SQL Server 2008 安全性

SQL Server 2008 具有了最新的安全技术,以保证数据的安全。微软公司利用自己 Windows 操作系统产品的安全性设置,将 SQL Server 的安全性建构在其上,并且增加了专门的数据安全管理等级。这些机制保证了数据库的访问层次与数据安全。

Page 3: 第 17 章   SQL Server 2008 安全性管理

17.1.1 SQL Server 2008 安全性简介

数据库的安全性是指保护数据库,以防止不合法的使用所造成的数据泄露、更改或破坏。系统安全保护措施是否有效是数据库系统的主要指标之一。数据库的安全性和计算机系统的安全性,包括操作系统、网络系统的安全性,是紧密联系、相互支持的。

对于数据库管理来说,保护数据不受内部和外部侵害是一项重要的工作。 SQL Server 正日益广泛地应用于各种场合,作为 SQL Server 的数据库系统管理员,需要深入理解 SQL Server 的安全性控制策略,以实现安全管理的目标。

Page 4: 第 17 章   SQL Server 2008 安全性管理

17.1.2 SQL Server 2008 安全管理等级合理有效的数据库安全机制既可以保证被授权用户能够

方便地访问数据库中的数据,又能够防止非法用户的入侵。 SQL Server 2008 提供了一套设计完善、操作简单的安全管理机制。 SQL Server 2008 的安全机制可以分为以下 4 个等级。

客户端操作系统登录的安全性。SQL Server 登录的安全性。数据库访问的安全性。数据库对象使用的安全性。每个安全等级就好像一道门,如果门没有上锁,或者用

户拥有开门的钥匙,则用户可以通过这道门达到下一个安全等级,如果通过了所有的门,则用户就可以实现对数据库的访问了。

Page 5: 第 17 章   SQL Server 2008 安全性管理

17.2 SQL Server 2008 验证模式

SQL Server 安全策略是通过系统的身份验证实现的。身份验证是指当用户访问系统时,系统对该用户的账号和口令的确认过程。身份验证的内容包括确认用户的账号是否有效、能否访问系统、能访问系统的哪些数据等。

身份验证模式是指系统确认用户的方式。 SQL Server 系统是基于 Windows 操作系统的,这样 SQL Server 的安全系统可以通过两种方式实现: SQL Server 和 Windows 结合使用以及只使用 Windows 。 Windows 系统用户能否访问 SQL Server 系统,取决于 SQL Server 系统身份验证方式的设置。

Page 6: 第 17 章   SQL Server 2008 安全性管理

17.2.1 Windows 身份验证

Windows 身份验证模式只允许使用 Windows 身份验证方式。此时,用户无法以 SQL Server 的登录账号登录服务器。它要求用户登录到 Windows 系统,当用户访问 SQL Server 时,不用再次登录。虽然用户仍会被提示登录,但SQL Server 的用户名会自动从用户网络登录 ID 中提取。 Windows 身份验证模式最适用于只在部门访问数据库的情况。与 SQL Server 身份验证方式相比, Windows 身份验证方式具有下列优点:提供了更多的功能,如安全确认和口令加密、审核、口令失效、最小口令长度和账号锁定;通过增加单个登录账号,允许在 SQL Server 系统中增加用户组;允许用户迅速访问 SQL Server 系统,而不必使用另一个登录账号和口令。

Page 7: 第 17 章   SQL Server 2008 安全性管理

17.2.2 混合模式

混合身份验证模式既允许使用 Windows 身份验证方式,又允许使用 SQL Server 身份验证方式。它使用户既可以登录SQL Server ,也可用 Windows 的集成登录。

集成登录只能在用命名管道连接客户机服务器时使用。当使用混合模式时,无论是使用 Windows 身份验证方式的用户,还是使用 SQL Server 身份验证方式的用户,都可以连接到SQL Server 系统上。也就是说,身份验证模式是对服务器来说的,而身份验证方式是对客户端计算机来说的。

Page 8: 第 17 章   SQL Server 2008 安全性管理

17.3 管理 SQL Server 2008 登录

使用合法的用户名与密码可以登录 SQL Server 2008进行操作。用户分为 Windows 用户与 SQL Server 用户。下面将分别讲解这两类用户的创建过程。

Page 9: 第 17 章   SQL Server 2008 安全性管理

17.3.1 创建 SQL Server 登录 下面主要讲解在 SQL Server Management Studio 中创建登录

的操作步骤。假设要在 SQL Server 系统中新加一个名为 Teacher 的用户,操作步骤如下。

( 1)启动并登录 SQL Server Management Studio ,在【对象资源管理器】面板中展开【安全性】分支。

( 2)右击【登录名】分支,在弹出的快捷菜单中选择【新建登录名】命令,弹出【登录名 - 新建】对话框。

( 3)在【登录名】文本框中输入“ Teacher” ,点选【 SQL Server 身份验证】单选按钮,在【密码】与【确认密码】文本框中输入“ Teacher” 。这里为了便于讲解,采用了与用户名相同的密码,读者在实际使用时要注意,这样会降低安全性。在【默认数据库】下拉列表框中选择【 StudentMan】选项,也就是当新建的用户登录,所有的默认操作都将是针对数据库 StudentMan 的。

Page 10: 第 17 章   SQL Server 2008 安全性管理

17.3.2 删除 SQL Server 登录

当一个用户不再需要具有数据库操作的权限时,在安全管理上要进行用户的删除操作。下面以删除用户 Teacher为例,讲解在 SQL Server 中删除用户登录的操作步骤。

( 1)启动并登录 SQL Server Management Studio,在【对象资源管理器】面板中展开【安全性】 |【登录名】分支,右击用户名【 Teacher】,在弹出的快捷菜单中选择【删除】命令,弹出【删除对象】对话框。

( 2)单击【确定】按钮,这个用户就删除了,此时会弹出一个删除登录名提示框。

( 3)如果要彻底删除用户,还要展开【数据库】 |【 StudentMan】 |【安全性】 |【用户】分支,右击【 Teacher】,弹出【删除对象】对话框。单击【确定】按钮,登录名将彻底从系统中删除。

Page 11: 第 17 章   SQL Server 2008 安全性管理

17.3.3 创建 Windows 登录

创建 Windows 登录与创建 SQL Server 登录有一处不同,就是先要在 Windows 操作系统中进行用户添加操作,然后才能在 SQL Server 中创建登录。下面就以创建用户 Teacher 为例,讲解在 SQL Server 中创建 Windows登录的操作步骤。

Page 12: 第 17 章   SQL Server 2008 安全性管理

17.3.4 删除Windows 登录

当一个用户不再具有数据库操作的权限时,在安全管理上要进行用户的删除操作。删除Windows 登录名的操作步骤如下。

( 1)启动并登录 SQL Server Management Studio,在【对象资源管理器】面板中展开【安全性】 |【登录名】分支,右击【 ADMIN-5513078C3\Teacher】,在弹出的快捷菜单中选择【删除】命令,弹出【删除对象】对话框。

( 2)单击【确定】按钮,这个用户就删除了,此时会弹出一个删除登录名提示框。

( 3) 如果要彻底删除用户,还要展开【数据库】 |【 StudentMan】 |【安全性】 |【用户】分支,右击【 ADMIN-5513078C3\Teacher】,将弹出【删除对象】对话框。单击【确定】按钮,登录名将彻底从系统中删除。

Page 13: 第 17 章   SQL Server 2008 安全性管理

17.4 权限

在数据库内部, SQL Server 提供的权限作为访问权设置的最后一道关卡。一个登录者若要对某个数据库进行修改或访问,必须具有相应的权限。这种权限涉及服务器级与数据库级的操作。权限既可以直接获得,也可以通过成为角色成员而继承角色的权限。权限的管理操作包括授予、拒绝和废除。

Page 14: 第 17 章   SQL Server 2008 安全性管理

17.4.1 权限类型

权限有 3 种类型,分别是对象权限、语句权限、隐含权限。

Page 15: 第 17 章   SQL Server 2008 安全性管理

17.4.2 为用户设置权限

下面以登录名 Teacher 为例,讲解在 SQL Server Management Studio 中进行用户权限设置的操作步骤。

Page 16: 第 17 章   SQL Server 2008 安全性管理

17.4.3 使用登录名登录

权限设置完成后,为了使新建的用户 Teacher 能登录 SQL Server 2008 并进行操作,下面还需要进行进一步的设置操作,操作步骤如下。

Page 17: 第 17 章   SQL Server 2008 安全性管理

17.5 角色

角色是为了方便用户权限管理而设计的对象。当一个用户进行权限设置时,使用上节所述的方式很直观和方便。可是实际工作中往往是有大量用户进行管理操作,此时通过角色就可以快速解决问题。

Page 18: 第 17 章   SQL Server 2008 安全性管理

17.5.1 角色简介

各个角色是对应不同权限的, SQL Server 中有很多权限,可以把这些权限组合或单独赋予各个角色,从而使不同角色的用户权限不同。

为了便于管理数据库中的权限, SQL Server 提供了若干角色,这些角色是用于分组其他主体的安全主体,类似于 Microsoft Windows 操作系统中的组。数据库级角色的权限作用域为数据库范围。

SQL Server 中有两种类型的角色:服务器角色和数据库角色。就如同一般企业管理中的角色,经理一级可以查看员工档案、财务报表等,而普通员工只能查看自己的档案以及个人工资情况等。服务器角色主要管理 SQL Server 的操作,而数据库角色主要针对数据库中对象的权限操作。

Page 19: 第 17 章   SQL Server 2008 安全性管理

17.5.2 服务器角色

服务器角色是指根据 SQL Server 的管理任务以及这些任务相对的重要性等级,把具有 SQL Server 管理职能的用户划分为不同的角色来管理 SQL Server 的权限。服务器角色适用于服务器范围内,其权限不能被修改,也不允许用户创建服务器角色。

Page 20: 第 17 章   SQL Server 2008 安全性管理

17.5.3 将用户设为服务器角色

下面以新建的用户 Teacher 为例,讲解为用户设置服务器角色的操作步骤。

( 1)启动并登录 SQL Server Management Studio,在【对象资源管理器】面板中展开【安全性】 |【登录名】分支,右击【 Teacher】,在弹出的快捷菜单中选择【属性】命令,弹出【登录属性】对话框。

( 2)选择【服务器角色】页,在【服务器角色】列表中勾选角色【 dbcreater】前的复选框,使登录名 Teacher具有管理数据库的角色,然后单击【确定】按钮保存设置。

( 3)以登录名 Teacher 登录,可以进行创建、更改、删除和还原任何数据库的操作。

Page 21: 第 17 章   SQL Server 2008 安全性管理

17.5.4 数据库角色

数据库角色是对数据库对象操作的权限的集合。在SQL Server 中,数据库角色可以新建,也可以使用已存在的数据库角色。数据库角色能为某一用户或一组用户授予不同级别的管理、访问数据库或数据库对象的权限,这些权限是 SQL Server 数据库专有的。

Page 22: 第 17 章   SQL Server 2008 安全性管理

17.5.5 将用户设为数据库角色

这里就以新建的用户 Teacher 为例,讲解为用户设置数据库角色的操作步骤。

( 1)启动并登录 SQL Server Management Studio,在【对象资源管理器】面板中展开【数据库】 |【 StudentMan】 |【安全性】 |【用户】分支,右击【 Teacher】,在弹出的快捷菜单中选择【属性】命令,弹出【数据库用户】对话框。

( 2)在【数据库角色成员身份】列表中勾选角色db_datareader前的复选框,使登录名 Teacher 具有读取数据表的角色,然后单击【确定】按钮保存设置。

( 3) 以登录名 Teacher 登录,将可以访问原来并不能查询的 ScoreInfo表。这表明对于 Teacher 授予了db_datareader 的角色后,它就具有了读取所有数据表的权限。

Page 23: 第 17 章   SQL Server 2008 安全性管理

17.6 保证数据库服务器的安全前面讲解了 SQL Server 的登录名,解决数据库服务器的安全问题

还不够。安全是一个很大的话题,这里不能做全面讲解,但是安全工作总是有一个共通的原则,这里列出来供读者参考。

1.安装最新的服务包2.使用 Microsoft 基线安全性分析器(MBSA)来评估服务器

的安全性3.使用 Windows 身份验证模式4.隔离服务器并定期备份5.分配一个强健的 sa 密码6.限制 SQL Server 服务的权限7.在防火墙上禁用 SQL Server 端口8.使用最安全的文件系统9.取消或限制共享10.审核指向 SQL Server 的连接

Page 24: 第 17 章   SQL Server 2008 安全性管理

17.7 小结

本章主要讲解了 SQL Server 2008 的安全性。安全性包括了用户权限的管理和数据安全两大部分,读者在了解了用户权限的管理方法后,不要忽视数据安全的管理。建议读者在实际工作中要多参考安全方面的相关资料。

Page 25: 第 17 章   SQL Server 2008 安全性管理

17.8 习题

( 1)创建一个 SQL Server 登录,用户名为 SS ,赋予所有数据库的操作权限,并使用服务器角色。

( 2)创建一个 Windows 登录,用户名为 WS ,赋予学生信息库的操作权限,并使用数据库角色。