250 likes | 436 Views
第 17 章 SQL Server 2008 安全性管理. SQL Server 包含各种精确的可配置的安全功能。使用这些功能,管理员可实施针对其所处环境的特定安全风险优化的深度防御。通过本章内容,读者应掌握有关 SQL Server 数据库引擎的安全信息。. 17.1 SQL Server 2008 安全性. SQL Server 2008 具有了最新的安全技术,以保证数据的安全。微软公司利用自己 Windows 操作系统产品的安全性设置,将 SQL Server 的安全性建构在其上,并且增加了专门的数据安全管理等级。这些机制保证了数据库的访问层次与数据安全 。.
E N D
第17章 SQL Server 2008安全性管理 • SQL Server包含各种精确的可配置的安全功能。使用这些功能,管理员可实施针对其所处环境的特定安全风险优化的深度防御。通过本章内容,读者应掌握有关SQL Server数据库引擎的安全信息。
17.1 SQL Server 2008安全性 • SQL Server 2008具有了最新的安全技术,以保证数据的安全。微软公司利用自己Windows操作系统产品的安全性设置,将SQL Server的安全性建构在其上,并且增加了专门的数据安全管理等级。这些机制保证了数据库的访问层次与数据安全。
17.1.1 SQL Server 2008安全性简介 • 数据库的安全性是指保护数据库,以防止不合法的使用所造成的数据泄露、更改或破坏。系统安全保护措施是否有效是数据库系统的主要指标之一。数据库的安全性和计算机系统的安全性,包括操作系统、网络系统的安全性,是紧密联系、相互支持的。 • 对于数据库管理来说,保护数据不受内部和外部侵害是一项重要的工作。SQL Server正日益广泛地应用于各种场合,作为SQL Server的数据库系统管理员,需要深入理解SQL Server的安全性控制策略,以实现安全管理的目标。
17.1.2 SQL Server 2008安全管理等级 • 合理有效的数据库安全机制既可以保证被授权用户能够方便地访问数据库中的数据,又能够防止非法用户的入侵。SQL Server 2008提供了一套设计完善、操作简单的安全管理机制。SQL Server 2008的安全机制可以分为以下4个等级。 • 客户端操作系统登录的安全性。 • SQL Server登录的安全性。 • 数据库访问的安全性。 • 数据库对象使用的安全性。 • 每个安全等级就好像一道门,如果门没有上锁,或者用户拥有开门的钥匙,则用户可以通过这道门达到下一个安全等级,如果通过了所有的门,则用户就可以实现对数据库的访问了。
17.2 SQL Server 2008验证模式 • SQL Server安全策略是通过系统的身份验证实现的。身份验证是指当用户访问系统时,系统对该用户的账号和口令的确认过程。身份验证的内容包括确认用户的账号是否有效、能否访问系统、能访问系统的哪些数据等。 • 身份验证模式是指系统确认用户的方式。SQL Server系统是基于Windows操作系统的,这样SQL Server的安全系统可以通过两种方式实现:SQL Server和Windows结合使用以及只使用Windows。Windows系统用户能否访问SQL Server系统,取决于SQL Server系统身份验证方式的设置。
17.2.1 Windows身份验证 • Windows 身份验证模式只允许使用Windows身份验证方式。此时,用户无法以SQL Server的登录账号登录服务器。它要求用户登录到Windows系统,当用户访问SQL Server时,不用再次登录。虽然用户仍会被提示登录,但SQL Server的用户名会自动从用户网络登录ID中提取。Windows 身份验证模式最适用于只在部门访问数据库的情况。与SQL Server身份验证方式相比,Windows身份验证方式具有下列优点:提供了更多的功能,如安全确认和口令加密、审核、口令失效、最小口令长度和账号锁定;通过增加单个登录账号,允许在SQL Server系统中增加用户组;允许用户迅速访问SQL Server系统,而不必使用另一个登录账号和口令。
17.2.2 混合模式 • 混合身份验证模式既允许使用Windows身份验证方式,又允许使用SQL Server身份验证方式。它使用户既可以登录SQL Server,也可用Windows的集成登录。 • 集成登录只能在用命名管道连接客户机服务器时使用。当使用混合模式时,无论是使用Windows身份验证方式的用户,还是使用SQL Server身份验证方式的用户,都可以连接到SQL Server系统上。也就是说,身份验证模式是对服务器来说的,而身份验证方式是对客户端计算机来说的。
17.3 管理SQL Server 2008登录 • 使用合法的用户名与密码可以登录SQL Server 2008进行操作。用户分为Windows用户与SQL Server用户。下面将分别讲解这两类用户的创建过程。
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的。
17.3.2 删除SQL Server登录 • 当一个用户不再需要具有数据库操作的权限时,在安全管理上要进行用户的删除操作。下面以删除用户Teacher为例,讲解在SQL Server中删除用户登录的操作步骤。 • (1)启动并登录SQL Server Management Studio,在【对象资源管理器】面板中展开【安全性】|【登录名】分支,右击用户名【Teacher】,在弹出的快捷菜单中选择【删除】命令,弹出【删除对象】对话框。 • (2)单击【确定】按钮,这个用户就删除了,此时会弹出一个删除登录名提示框。 • (3)如果要彻底删除用户,还要展开【数据库】|【StudentMan】|【安全性】|【用户】分支,右击【Teacher】,弹出【删除对象】对话框。单击【确定】按钮,登录名将彻底从系统中删除。
17.3.3 创建Windows登录 • 创建Windows登录与创建SQL Server登录有一处不同,就是先要在Windows操作系统中进行用户添加操作,然后才能在SQL Server中创建登录。下面就以创建用户Teacher为例,讲解在SQL Server中创建Windows登录的操作步骤。
17.3.4 删除Windows登录 • 当一个用户不再具有数据库操作的权限时,在安全管理上要进行用户的删除操作。删除Windows登录名的操作步骤如下。 • (1)启动并登录SQL Server Management Studio,在【对象资源管理器】面板中展开【安全性】|【登录名】分支,右击【ADMIN-5513078C3\Teacher】,在弹出的快捷菜单中选择【删除】命令,弹出【删除对象】对话框。 • (2)单击【确定】按钮,这个用户就删除了,此时会弹出一个删除登录名提示框。 • (3)如果要彻底删除用户,还要展开【数据库】|【StudentMan】|【安全性】|【用户】分支,右击【ADMIN-5513078C3\Teacher】,将弹出【删除对象】对话框。单击【确定】按钮,登录名将彻底从系统中删除。
17.4 权限 • 在数据库内部,SQL Server提供的权限作为访问权设置的最后一道关卡。一个登录者若要对某个数据库进行修改或访问,必须具有相应的权限。这种权限涉及服务器级与数据库级的操作。权限既可以直接获得,也可以通过成为角色成员而继承角色的权限。权限的管理操作包括授予、拒绝和废除。
17.4.1 权限类型 • 权限有3种类型,分别是对象权限、语句权限、隐含权限。
17.4.2 为用户设置权限 • 下面以登录名Teacher为例,讲解在SQL Server Management Studio中进行用户权限设置的操作步骤。
17.4.3 使用登录名登录 • 权限设置完成后,为了使新建的用户Teacher能登录SQL Server 2008并进行操作,下面还需要进行进一步的设置操作,操作步骤如下。
17.5 角色 • 角色是为了方便用户权限管理而设计的对象。当一个用户进行权限设置时,使用上节所述的方式很直观和方便。可是实际工作中往往是有大量用户进行管理操作,此时通过角色就可以快速解决问题。
17.5.1 角色简介 • 各个角色是对应不同权限的,SQL Server中有很多权限,可以把这些权限组合或单独赋予各个角色,从而使不同角色的用户权限不同。 • 为了便于管理数据库中的权限,SQL Server提供了若干角色,这些角色是用于分组其他主体的安全主体,类似于Microsoft Windows操作系统中的组。数据库级角色的权限作用域为数据库范围。 • SQL Server中有两种类型的角色:服务器角色和数据库角色。就如同一般企业管理中的角色,经理一级可以查看员工档案、财务报表等,而普通员工只能查看自己的档案以及个人工资情况等。服务器角色主要管理SQL Server的操作,而数据库角色主要针对数据库中对象的权限操作。
17.5.2 服务器角色 • 服务器角色是指根据SQL Server的管理任务以及这些任务相对的重要性等级,把具有SQL Server管理职能的用户划分为不同的角色来管理SQL Server的权限。服务器角色适用于服务器范围内,其权限不能被修改,也不允许用户创建服务器角色。
17.5.3 将用户设为服务器角色 • 下面以新建的用户Teacher为例,讲解为用户设置服务器角色的操作步骤。 • (1)启动并登录SQL Server Management Studio,在【对象资源管理器】面板中展开【安全性】|【登录名】分支,右击【Teacher】,在弹出的快捷菜单中选择【属性】命令,弹出【登录属性】对话框。 • (2)选择【服务器角色】页,在【服务器角色】列表中勾选角色【dbcreater】前的复选框,使登录名Teacher具有管理数据库的角色,然后单击【确定】按钮保存设置。 • (3)以登录名Teacher登录,可以进行创建、更改、删除和还原任何数据库的操作。
17.5.4 数据库角色 • 数据库角色是对数据库对象操作的权限的集合。在SQL Server中,数据库角色可以新建,也可以使用已存在的数据库角色。数据库角色能为某一用户或一组用户授予不同级别的管理、访问数据库或数据库对象的权限,这些权限是SQL Server数据库专有的。
17.5.5 将用户设为数据库角色 • 这里就以新建的用户Teacher为例,讲解为用户设置数据库角色的操作步骤。 • (1)启动并登录SQL Server Management Studio,在【对象资源管理器】面板中展开【数据库】|【StudentMan】|【安全性】|【用户】分支,右击【Teacher】,在弹出的快捷菜单中选择【属性】命令,弹出【数据库用户】对话框。 • (2)在【数据库角色成员身份】列表中勾选角色db_datareader前的复选框,使登录名Teacher具有读取数据表的角色,然后单击【确定】按钮保存设置。 • (3)以登录名Teacher登录,将可以访问原来并不能查询的ScoreInfo表。这表明对于Teacher授予了db_datareader的角色后,它就具有了读取所有数据表的权限。
17.6 保证数据库服务器的安全 • 前面讲解了SQL Server的登录名,解决数据库服务器的安全问题还不够。安全是一个很大的话题,这里不能做全面讲解,但是安全工作总是有一个共通的原则,这里列出来供读者参考。 • 1.安装最新的服务包 • 2.使用Microsoft基线安全性分析器(MBSA)来评估服务器的安全性 • 3.使用Windows身份验证模式 • 4.隔离服务器并定期备份 • 5.分配一个强健的sa密码 • 6.限制 SQL Server服务的权限 • 7.在防火墙上禁用SQL Server端口 • 8.使用最安全的文件系统 • 9.取消或限制共享 • 10.审核指向SQL Server的连接
17.7 小结 • 本章主要讲解了SQL Server 2008的安全性。安全性包括了用户权限的管理和数据安全两大部分,读者在了解了用户权限的管理方法后,不要忽视数据安全的管理。建议读者在实际工作中要多参考安全方面的相关资料。
17.8 习题 • (1)创建一个SQL Server登录,用户名为SS,赋予所有数据库的操作权限,并使用服务器角色。 • (2)创建一个Windows登录,用户名为WS,赋予学生信息库的操作权限,并使用数据库角色。