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