《SQLServer的安全性管理.ppt》由会员分享,可在线阅读,更多相关《SQLServer的安全性管理.ppt(42页珍藏版)》请在三一办公上搜索。
1、第11章 SQL Server的安全性管理,本章学习目标,了解SQL Server 2005登录验证模式掌握管理两类SQL Server 2005登录帐户的方法掌握管理SQL Server 2005数据库用户的方法了解基于角色的权限管理掌握管理服务器角色的方法掌握管理数据库角色的方法掌握管理权限的方法,11.1 SQL Server 的安全机制,SQL Server 2005数据库的安全性通过以下几个方面得以保证:网络系统的安全性:通过在网络系统边界安装防火墙系统得以实施。服务器的安全性:运行SQL Server的服务器本身及其操作系统的安全。登录安全性:允许哪些用户登录服务器。数据库的安全性
2、:规定用户登录服务器以后可以使用哪些数据库。数据库对象的安全性:规定用户打开某一数据库后,可以操作哪些数据库对象以及怎样操作。,SQL Server 登录身份验证模式,SQL Server登录身份验证用来确认该用户是否具有连接SQL Server的权限。任何用户在使用SQL Server数据库之前,必须通过系统的安全身份验证。SQL Server 2005提供了两种确认用户的验证模式:即“Windows身份验证模式”和“SQL Server和Windows身份验证模式”。,1Windows身份验证模式(Windows身份验证)2混合模式(Windows身份验证和SQL Server 2005身
3、份验证),SQL Server 登录身份验证模式,1Windows身份验证用户通过Windows用户帐户连接时,SQL Server使用Windows操作系统中的信息验证帐户名和密码。这是默认的身份验证模式。Windows身份验证通过强密码的复杂性验证提供密码策略强制,提供帐户锁定支持,并且支持密码过期。,SQL Server 登录身份验证模式,2SQL Server和Windows身份验证模式(又称为混合模式)允许用户使用Windows身份验证或SQL Server身份验证。使用SQL Server身份验证时,必须提供一个已存在的SQL Server登录帐户和密码。SQL Server 密码
4、可包含1到128个字符,包括字母、符号和数字的任意组合。,SQL Server 登录身份验证模式,当采用强密码时,密码长度必须多于8个字符。强密码不能使用禁止的条件或字词,包括:空条件或NULL条件、当前计算机的名称、用户名等。并且要满足下列四个条件中的三个:必须包含大写字母。必须包含小写字母。必须包含数字。必须包含非字母数字字符;例如,#、%或。,SQL Server 登录身份验证模式,如果选择“混合模式身份验证”并使用SQL Server登录,则应该为所有SQL Server帐户设置强密码。注意:设置强密码对于确保系统的安全至关重要。切勿设置空密码或弱密码。提供SQL Server身份验证
5、只是为了向后兼容,应尽可能使用Windows身份验证。,SQL Server 登录身份验证模式,SQL Server 2005默认的是“Windows身份验证模式”,利用管理控制台可重新设置身份验证模式:打开管理控制台,服务器名称,右键,属性,选择“安全性”,根据需要选择“Windows身份验证模式”或“SQL Server和Windows身份验证模式”。打开SQL Server配置管理器,单击窗口左边的“SQL Server 2005服务”,在窗口右边找到“SQL Server服务”,并重新启动它。,11.1.2 SQL Server 数据库的安全性,用户登录SQL Server服务器后,并
6、不自动拥有对数据库的访问权限。必须在想要访问的数据库中有一个与登录帐户相对应的数据库帐户。当需要访问某个数据库时,SQL Server的安全系统会根据这个数据库帐户的权限决定是否允许用户访问该数据库。,11.1.3 SQL Server 数据库对象的安全性,在创建一个数据库对象时,创建者将自动拥有对该数据库对象的所有权限,即可以完全控制该对象。当一个非数据库拥有者想要访问数据库中的对象时,必须事先由数据库拥有者赋予该用户对指定对象的操作权限。,11.2 管理服务器的安全性,11.2.1 SQL Server 登录帐户,在管理控制台,服务器下的“安全性”,选择“登录名”,可以查看当前服务器所有的
7、登录帐户信息。SQL Server 2005安装成功后,自动创建了一些登录帐户,如sa帐户是给系统管理员使用的特殊帐户,拥有最高的管理权限,可以执行服务器范围内的所有操作。为了安全起见,sa帐户在默认情况下是禁用的。另外还有“BUILTINAdministrators”帐户,是为Windows系统管理员管理服务器提供的,也可以执行服务器范围内的所有操作。,11.2.2 添加登录帐户,1使用管理控制台添加登录帐户在管理控制台,展开服务器安全性登录名,右键,新建登录名,根据所要创建的登录帐户的类型,选择相应的身份验证。2使用T-SQL语句添加登录帐户CREATE LOGIN 登录名 WITH PA
8、SSWORD=密码,11.2.3 修改登录帐户属性,使用管理控制台修改登录帐户属性,只需双击要修改属性的登录帐户,并在登录属性对话框中进行修改即可。注意:对于SQL Server帐户,可以修改其密码。对于Windows帐户,只能使用Windows的“计算机管理器”或“域用户管理器”修改帐户密码。,11.2.4 拒绝或禁用登录帐户,暂时拒绝或禁用一个登录帐户连接到SQL Server服务器:在管理控制台中,展开服务器安全性登录名,双击要拒绝访问的登录帐户,打开登录属性对话框。在“状态”选择页,选择“拒绝”或“禁用”单选按钮。,11.2.5 删除登录帐户,1使用管理控制台删除登录帐户:在管理控制台
9、,展开服务器安全性登录名,右键,删除。2使用T-SQL语句删除登录帐户DROP LOGIN 登录名,11.2.6 服务器角色,SQL Server管理者可以将某一组用户设置为某一角色,这样只要对角色进行权限设置便可以实现对用户权限的设置,大大减少了管理员的工作量。SQL Server提供了通常管理工作的预定义服务器角色和数据库角色。用户还可以创建自己的数据库角色。,11.2.6 服务器角色,服务器角色是指根据SQL Server的管理任务,以及这些任务的重要性把具有SQL Server管理职能的用户划分为不同的用户组,每一组所具有的管理权限都是SQL Server内置的,不能对其进行添加、修改
10、和删除,只能向其中加入用户或者其他角色。,11.2.6 服务器角色,SQL Server的固定服务器角色,具体含义如下:系统管理员(sysadmin):可以在数据库中执行任何活动。默认情况下,Windows BUILTINAdministrators组(本地管理员组)的所有成员都是sysadmin固定服务器角色的成员。服务器管理员(Serveradmin):可以更改服务器范围的配置选项和关闭服务器。磁盘管理员(diskadmin):管理磁盘文件。进程管理员(processadmin):可以终止在数据库引擎实例中运行的进程。,11.2.6 服务器角色,安全管理员(securityadmin):管
11、理登录名及其属性。安装管理员(setupadmin):添加和删除链接服务器,并执行某些系统存储过程。数据库创建者(dbcreator):创建、更改、删除和还原任何数据库。大容量插入操作管理者(bulkadmin):可以执行大容量插入操作。,11.2.6 服务器角色,使用管理控制台更改服务器角色成员:展开相应服务器安全性服务器角色,双击右侧窗口的服务器角色列表中要更改的服务器角色,将弹出“服务器角色属性”对话框,其中显示出当前服务器角色成员列表。,11.3 管理数据库的用户,除了服务器登录帐户外,每个数据库中都有一套相互独立的数据库用户列表。每个数据库用户都和服务器登录帐户之间存在着一种映射关系
12、。系统管理员可以将服务器登录帐户映射到用户需要访问的数据库中的一个用户帐户和角色上。一个登录帐户在不同的数据库中可以映射成不同的用户,从而拥有不同的权限。,11.3 管理数据库的用户,每个数据库一般都有两个默认的用户:dbo和guest。dbo代表数据库的拥有者。Guest用户主要是让那些没有属于自己的用户帐户的SQL Server登录者作为其默认的用户,从而使该登录者能够访问具有guest用户的数据库。不能删除guest用户,但可通过撤消该用户的CONNECT权限将其禁用。,11.3 管理数据库的用户,1使用管理控制台添加数据库用户展开SQL Server服务器组中相应服务器。再展开待添加用
13、户的数据库安全性用户,右键,新建用户。2使用T-SQL语句添加数据库用户:CREATE USER 用户名 FOR|FROM LOGIN 登录名,11.3.2 删除数据库用户,删除数据库用户实际上就是删除一个登录帐户到一个数据库中的映射。在管理控制台中,欲删除的用户,右键,删除。利用T-SQL语句删除数据库用户:DROP USER 用户名,11.3.3 数据库角色,数据库角色是为某一用户或某一组用户授予不同级别的管理或访问数据库以及数据库对象的权限,这些权限是数据库专有的,并且还可以给一个用户授予属于同一数据库的多个角色。SQL Server在安装成功后,提供了十种固定数据库角色。固定数据库角色
14、是在数据库级别定义的,并且存在于每个数据库中。,11.3.3 数据库角色,SQL Server提供的固定数据库角色的具体含义:public:维护全部默认权限。db_accessadmin:可以为登录帐户添加或删除访问权限。db_backupoperator:可以备份该数据库。db_datareader:可以对数据库中的任何表或视图运行SELECT语句。db_datawriter:可以在所有用户表中添加、删除或更改数据。,11.3.3 数据库角色,db_ddladmin:可以在数据库中运行任何数据定义语言(DDL)命令。db_denydatareader:不能读取数据库内用户表中的任何数据。db
15、_denydatawriter:不能添加、修改或删除数据库内用户表中的任何数据。db_owner:可以执行数据库的所有配置和维护活动。db_securityadmin:可以修改角色成员身份和管理权限。,11.3.3 数据库角色,在固定的数据库角色中,public是一个特殊的数据库角色,每个数据库用户都属于public数据库角色。当尚未对某个用户授予或拒绝对安全对象的特定权限时,则该用户将继承授予该安全对象的public角色的权限。,11.3.3 数据库角色,在管理控制台中,展开SQL Server服务器组中相应服务器,数据库安全性角色数据库角色,在右侧窗口中会看到数据库中已存在的角色。在未创建
16、新角色之前,数据库中只有固定数据库角色。,11.4 权限管理,权限用来指定授权用户可以使用的数据库对象以及对这些数据库对象可以执行的操作。用户在登录SQL Server之后,根据其用户帐户所属的Windows组或角色,决定了该用户能够对哪些数据库对象执行哪种操作以及能够访问、修改哪些数据。在每个数据库中,用户的权限独立于用户帐户和用户在数据库中的角色,每个数据库都有自己独立的权限系统。权限的管理主要是完成对权限的授权、拒绝和回收。,11.4 权限管理,管理权限可以通过以下的方式来实现:从数据库的角度来管理。从用户或角色的角度来管理。从数据库对象的角度来管理。可以通过管理控制台或T-SQL语句管
17、理权限。,11.4.1 通过SQL Server管理控制台管理权限,1管理数据库的权限在管理控制台中,展开SQL Server服务器组中相应服务器数据库,选择某个数据库,右键,属性,打开权限窗口。在权限选择页中,添加用户或角色。,11.4.1 通过SQL Server管理控制台管理权限,2管理用户的权限:就是设置一个用户能对哪些对象执行哪些操作。例:GRANT SELECT ON SCORE TO USER2,11.4.1 通过SQL Server管理控制台管理权限,3管理数据库对象的权限也可以从数据库对象的角度完成相同的工作,即设置一个数据库对象能被哪些用户/角色执行哪些操作。在管理控制台中
18、,服务器组服务器数据库指定的数据库表,右键,属性,选择“权限”选择页。可以添加用户或角色,也可以撤消已授的权限。,11.4.2 使用T-SQL 语句管理权限,GRANT、DENY和REVOKE三种命令管理权限:GRANT命令用于把指定的权限授予某一用户。GRANT ALL 权限|权限名(列名,.n)ON 数据库对象名 TO 用户/角色 WITH GRANT OPTION-被授权者在获得指定权限的同时还可以将指定权限授予其他用户或角色。,11.4.2 使用T-SQL 语句管理权限,DENY命令用来禁止用户使用指定的权限。DENY ALL 权限|权限名(列名,.)ON 数据库对象名 TO 用户/角
19、色 CASCADE-指示拒绝授予指定用户该权限,同时,对该用户授予了该权限的所有其他用户,也拒绝授予该权限。如果授权时使用了WITH GRANT OPTION 选项,则此处为必选项。,11.4.2 使用T-SQL 语句管理权限,REVOKE命令用来收回用户所拥有的某些权限,使其不能执行此操作,除非该用户被加入到某个角色中,从而通过角色获得授权。REVOKE GRANT OPTION FOR ALL PRIVILEGES|权限名(列名,.n)ON 数据库对象名 TO|FROM 用户/角色 CASCADE-指示当前正在撤消的权限也将从被该用户授权的其他用户中撤消。使用CASCADE参数时,必须同时指定GRANT OPTION FOR参数。,11.5 思考与练习,1SQL Server 2005提供了哪两种确认用户的认证模式?各自的含义是什么?2SQL Server包含哪几种类型的角色?它是如何管理这些角色的?3使用管理控制台和T-SQL语句两种方法添加和删除登录帐户。4使用管理控制台和T-SQL语句两种方法添加和删除数据库用户。5使用管理控制台和T-SQL语句两种方法管理权限。,