《第8章数据库安全管理》由会员分享,可在线阅读,更多相关《第8章数据库安全管理(25页珍藏版)》请在金锄头文库上搜索。
1、中南大学信息科学与工程学院数据库技术与应用数据库技术与应用数据库技术与应用教材编写组数据库技术与应用教材编写组数据库技术与应用本章内容重点难点第八章第八章 数据库安全的管理数据库安全的管理数据库安全的概念数据库安全的概念角色的概念角色的概念数据库的安全机制数据库的安全机制数据库安全管理的内容数据库安全管理的内容 SQL Server 2008身份验证模式的基本操作身份验证模式的基本操作2数据库技术与应用问题提出问题提出什么是数据库的安全?什么是数据库的安全?数据库的安全由什么来保障?数据库的安全由什么来保障?3数据库技术与应用8.1 SQL Server 20088.1 SQL Server
2、2008的安全机制的安全机制身份身份验证验证身份身份验证模式的设置验证模式的设置4数据库技术与应用8.1.1 8.1.1 身份验证身份验证数据库数据库的安全性(的安全性(securitysecurity)是指保护数据库避免不合法)是指保护数据库避免不合法的使用,以免数据的泄漏、更改或破坏。数据库的安全性的使用,以免数据的泄漏、更改或破坏。数据库的安全性用于防止对数据库的恶意用于防止对数据库的恶意破坏和破坏和非法存取非法存取。SQL Server SQL Server 的的身份验证模式是指系统确认用户的方式身份验证模式是指系统确认用户的方式。SQL SQL Server 2008Server 2
3、008能在两种身份验证模式能在两种身份验证模式(Authentication ModesAuthentication Modes)下运行:)下运行:WindowsWindows身份验证模式身份验证模式和混合模式和混合模式。5数据库技术与应用8.1.1 8.1.1 身份验证身份验证WindowsWindows身份验证模式身份验证模式在在WindowsWindows身份验证模式下,身份验证模式下,SQL Server 2008SQL Server 2008依靠依靠WindowsWindows身份验证来验证用户的身份。只要用户能够通过身份验证来验证用户的身份。只要用户能够通过WindowsWindo
4、ws用户账号验证,即可连接到用户账号验证,即可连接到SQL Server 2008SQL Server 2008。 注意注意以下两个方面:以下两个方面:必须必须将将Windows账户加入到账户加入到SQL Server 2008中,才能采用中,才能采用Windows账户登录账户登录SQL Server 2008。如果如果使用使用Windows账户登录到另一个网络的账户登录到另一个网络的SQL Server 2008,则,则必须在必须在Windows中设置中设置彼此的彼此的托管权限托管权限。Windows身份验证模式是身份验证模式是SQL Server 2008的默认身份验证模式。这的默认身份验
5、证模式。这种模式下,种模式下,SQL Server 2008不要求提供密码,也不执行身份验证,不要求提供密码,也不执行身份验证,用户身份由用户身份由Windows进行确认。进行确认。6数据库技术与应用8.1.1 8.1.1 身份验证身份验证混合模式混合模式在混合模式下用户既可以使用在混合模式下用户既可以使用 WindowsWindows身份验证,也可以身份验证,也可以使用使用SQL Server 2008SQL Server 2008身份验证。身份验证。通过通过混合模式身份验证进行连接的用户每次连接时必须提供其凭据混合模式身份验证进行连接的用户每次连接时必须提供其凭据(登录名和密码)。当使用混
6、合模式身份验证时,必须为所有(登录名和密码)。当使用混合模式身份验证时,必须为所有SQL SQL Server 2008Server 2008账户设置强密码账户设置强密码。7数据库技术与应用8.1.2 8.1.2 身份验证模式的设置身份验证模式的设置在安装在安装SQL Server 2008 SQL Server 2008 的过程中,会有选择身份验证模式的过程中,会有选择身份验证模式的步骤。安装完成后,也可以通过的步骤。安装完成后,也可以通过SQL Server 2008 SQL Server 2008 的的SSMSSSMS进行更改。操作进行更改。操作步骤如下步骤如下:(1 1)打开)打开SS
7、MSSSMS窗口,选择一种身份验证模式建立与服务器的连接。窗口,选择一种身份验证模式建立与服务器的连接。(2 2)在)在“对象资源管理器对象资源管理器”窗口中,鼠标窗口中,鼠标右键单击当前服务器名称右键单击当前服务器名称,选择,选择“属性属性”命令,打开命令,打开“服务服务器属性器属性”对话框,如图对话框,如图8.38.3所示所示。8数据库技术与应用8.1.2 8.1.2 身份验证模式的设置身份验证模式的设置(3 3)在左侧的选项卡列表框中,选择)在左侧的选项卡列表框中,选择“安全性安全性”选项卡,展开安全性选项内容,如图选项卡,展开安全性选项内容,如图8.48.4所示。在此所示。在此选项卡中
8、即可设置身份验证模式选项卡中即可设置身份验证模式。(4 4)通过在)通过在“服务器身份验证服务器身份验证”选项区域下,选择相应的单选按钮,可以确定选项区域下,选择相应的单选按钮,可以确定SQL Server 2008SQL Server 2008的服的服务器身份验证模式。无论使用哪种模式,都可以通过审核来跟踪访问务器身份验证模式。无论使用哪种模式,都可以通过审核来跟踪访问SQL Server 2008SQL Server 2008的用户,默认时的用户,默认时仅审核失败的登录。仅审核失败的登录。(5 5)单击)单击“确定确定”按钮完成设置按钮完成设置, ,此时,在弹出图此时,在弹出图8.58.5
9、所示对话框,要求重新启动所示对话框,要求重新启动SQL Server 2008 SQL Server 2008 的的服务器才能实现混合模式登录服务器才能实现混合模式登录。9数据库技术与应用8.2 SQL Serve8.2 SQL Serve安全管理安全管理登录管理登录管理数据库用户管理数据库用户管理角色管理角色管理权限管理权限管理10数据库技术与应用8.2.1 8.2.1 登录管理登录管理在在SQL Server 2008SQL Server 2008中,不管使用哪种验证方式,中,不管使用哪种验证方式,用户在对数据库进行操作之前,必须使用有效的登用户在对数据库进行操作之前,必须使用有效的登录名
10、连接到相应的数据库录名连接到相应的数据库。创建登录名的创建登录名的方法(方法(2 2种)种)从从WindowsWindows用户或组中创建登录账户用户或组中创建登录账户在在SQL Server 2008SQL Server 2008中创建新的中创建新的SQL Server 2008SQL Server 2008登录登录名名11数据库技术与应用8.2.1 8.2.1 登录管理登录管理1 1创建创建WindowsWindows身份验证模式的登录名身份验证模式的登录名操作步骤:操作步骤:注意注意:创建了创建了WindowsWindows用户账号之后,还需要使用对象资源管理器将该账号加用户账号之后,还
11、需要使用对象资源管理器将该账号加入到入到SQL Server 2008SQL Server 2008中中。12数据库技术与应用8.2.1 8.2.1 登录管理登录管理2 2建立建立SQL Server 2008SQL Server 2008验证模式的登录名验证模式的登录名注意注意:创建了:创建了WindowsWindows用户账号之后,还需要使用对象资源管理器将用户账号之后,还需要使用对象资源管理器将该账号加入到该账号加入到SQL Server 2008SQL Server 2008中。中。13在混合模式下,如果不使用在混合模式下,如果不使用WindowsWindows用户连接用户连接SQL
12、Server SQL Server 20082008,则需要在,则需要在SQL Server SQL Server 20082008下创建登录用户,才能够通下创建登录用户,才能够通过过SQL Server 2008SQL Server 2008身份验证连身份验证连接接SQL Server 2008SQL Server 2008实例。实例。若要增加新的若要增加新的SQL Server 2008SQL Server 2008用户或用户或SQL Server 2008SQL Server 2008安装时安装时没有设置没有设置SQL Server 2008SQL Server 2008验证验证模式的登
13、录名,可按以下操作步模式的登录名,可按以下操作步骤在图形界面中新建:骤在图形界面中新建:数据库技术与应用8.2.2 8.2.2 数据库用户管理数据库用户管理在在SQL Server 2008SQL Server 2008中,数据库用户账户用来控制中,数据库用户账户用来控制用户是否具有操纵用户是否具有操纵SQL Server 2008SQL Server 2008实例中的各个实例中的各个数据库的权限。数据库的权限。用户用户和登录是两个不同的概念和登录是两个不同的概念。登录登录是对服务器而言,只表明它通过了是对服务器而言,只表明它通过了NTNT认证或认证或SQL SQL Server 2008Se
14、rver 2008认证,但不能表明其可以对数据库进行操作认证,但不能表明其可以对数据库进行操作。用户用户是对数据库而言,属于数据库级。数据库用户就是指是对数据库而言,属于数据库级。数据库用户就是指对该数据库具有访问权的用户。它用来指出哪些人可以访对该数据库具有访问权的用户。它用来指出哪些人可以访问数据库。问数据库。创建创建登录账户后,如果在数据库中没有授予该用户访问数据库的权登录账户后,如果在数据库中没有授予该用户访问数据库的权限,则该用户仍然不能访问数据库,所以对于每个要求访问数据库限,则该用户仍然不能访问数据库,所以对于每个要求访问数据库的登录(用户),必须将其用户账户添加到数据库中,并授
15、予其相的登录(用户),必须将其用户账户添加到数据库中,并授予其相应的活动权限(使其成为数据库用户)。应的活动权限(使其成为数据库用户)。14数据库技术与应用8.2.2 8.2.2 数据库用户管理数据库用户管理使用对象资源管理器创建数据库用户的操作步骤:使用对象资源管理器创建数据库用户的操作步骤:。注意:一个登录名在本数据库中只能注意:一个登录名在本数据库中只能创建一个数据库用户。若在该数据库创建一个数据库用户。若在该数据库中已有对应用户名,则该登录账号不中已有对应用户名,则该登录账号不会出现在会出现在“登录名登录名”下拉列表框中。下拉列表框中。15数据库技术与应用8.2.3 8.2.3 角色管
16、理角色管理角色角色是数据库管理系统为方便权限管理而设置的管理单位是数据库管理系统为方便权限管理而设置的管理单位。通。通过过角色可将用户分为不同的类型,相同类用户(相同角色角色可将用户分为不同的类型,相同类用户(相同角色的成员)进行统一管理,赋予相同的操作权限。的成员)进行统一管理,赋予相同的操作权限。一个角色类似于一个角色类似于WindowsWindows账户管理中的一个用户组,账户管理中的一个用户组,可包可包含含多个用户。在多个用户。在SQL Server 2008SQL Server 2008中,数据库用户是数据库中,数据库用户是数据库级别上的主体。每个数据库用户都是级别上的主体。每个数据
17、库用户都是 public public 角色的成员角色的成员。角色的类型(共角色的类型(共3 3种):种):固定角色固定角色用户定义数据库角色用户定义数据库角色应用程序应用程序角色角色16数据库技术与应用8.2.3 8.2.3 角色管理角色管理固定角色固定角色固定服务器角色固定服务器角色 独立于各个数据库,具有固定的权限。独立于各个数据库,具有固定的权限。固定数据库角色固定数据库角色指数据库的管理、访问权限已被指数据库的管理、访问权限已被SQL ServerSQL Server固定的那些固定的那些角色。角色。用户定义数据库角色用户定义数据库角色当当一组用户需要设置的权限不同于固定数据库角色所具
18、一组用户需要设置的权限不同于固定数据库角色所具有的权限时,为了满足要求而定义的新的数据库角色有的权限时,为了满足要求而定义的新的数据库角色。应用程序角色应用程序角色应用程序角色是一个数据库主体,它使应用程序能够用应用程序角色是一个数据库主体,它使应用程序能够用其自身的、类似用户的特权来运行其自身的、类似用户的特权来运行。17数据库技术与应用8.2.3 8.2.3 角色管理角色管理角色管理角色管理利用利用角色,角色,SQL Server 2008SQL Server 2008管理者可以将某些用户设置管理者可以将某些用户设置为某一角色,这样只对角色进行权限设置便可以实现对所为某一角色,这样只对角色
19、进行权限设置便可以实现对所有用户权限的设置,大大减少了管理员的工作量有用户权限的设置,大大减少了管理员的工作量。角色管理角色管理包含包含固定服务器角色管理固定服务器角色管理固定数据库角色管理固定数据库角色管理用户定义数据库角色管理用户定义数据库角色管理18数据库技术与应用8.2.4 8.2.4 权限管理权限管理数据库的权限是指用户对数据库中对象的使用及操数据库的权限是指用户对数据库中对象的使用及操作的权利作的权利。被被授予的权限来决定用户能够对哪些数据库对象执行哪些授予的权限来决定用户能够对哪些数据库对象执行哪些操作。因此,对于每个用户,必须向其授予明确的权限,操作。因此,对于每个用户,必须向
20、其授予明确的权限,以便他们能够以不同的方式访问数据库对象,这就是权限以便他们能够以不同的方式访问数据库对象,这就是权限管理。管理。权限权限的类型(共的类型(共3 3种种)对象权限对象权限语句权限语句权限隐含权限隐含权限19数据库技术与应用8.2.4 8.2.4 权限管理权限管理对象权限对象权限决定决定用户对数据库对象所执行的操作,它控制用户在表和用户对数据库对象所执行的操作,它控制用户在表和视图上执行视图上执行SELECTSELECT、INSERTINSERT、UPDATEUPDATE、DELETEDELETE语句以及执语句以及执行存储过程的能力行存储过程的能力。20数据库技术与应用8.2.4
21、 8.2.4 权限管理权限管理语句权限语句权限主要主要指用户是否具有权限来执行某一语句。这些语句通常指用户是否具有权限来执行某一语句。这些语句通常是一些管理性操作,如创建数据库、表、存储过程等是一些管理性操作,如创建数据库、表、存储过程等。隐含隐含权限权限 是指系统自行预定义而不需要授权就有的权限,包括固是指系统自行预定义而不需要授权就有的权限,包括固定服务器角色、固定数据库角色和数据库对象所有者所拥定服务器角色、固定数据库角色和数据库对象所有者所拥有的权限。有的权限。21数据库技术与应用8.2.4 8.2.4 权限管理权限管理权限的管理包含权限的管理包含对象权限的管理对象权限的管理在在SQL
22、 Server 2008SQL Server 2008中,所有对象权限都可以授予。可以中,所有对象权限都可以授予。可以为特定的对象、特定类型的所有对象和所有属于特定架构为特定的对象、特定类型的所有对象和所有属于特定架构的对象管理器。的对象管理器。语句语句权限的管理权限的管理用户语句权限可以使用对象资源管理器授予。例如为角色用户语句权限可以使用对象资源管理器授予。例如为角色ROLE1ROLE1授予授予CREATE TABLECREATE TABLE权限,而不授予权限,而不授予SELECTSELECT权限,然后权限,然后执行相应的语句,查看执行结果,从而理解语句权限的设执行相应的语句,查看执行结果
23、,从而理解语句权限的设置。置。注意注意:以上所讲述的在对象资源管理器中设置对象权限和语句权限:以上所讲述的在对象资源管理器中设置对象权限和语句权限的方法并不唯一,同样的权限设置,通过其他操作方法一样可以达的方法并不唯一,同样的权限设置,通过其他操作方法一样可以达到。到。22数据库技术与应用本章小结本章小结两种身份验证模式:两种身份验证模式:WindowsWindows身份验证模式和混合模式身份验证模式和混合模式 登录帐户是用户与登录帐户是用户与SQL ServerSQL Server间建立的连接途径。间建立的连接途径。 用户和登录是两个不同的概念。登录是对服务器而言。而用户和登录是两个不同的概
24、念。登录是对服务器而言。而用户是对数据库而言,属于数据库级。用户是对数据库而言,属于数据库级。权限是指用户对数据库中对象的使用及操作的权利。权限是指用户对数据库中对象的使用及操作的权利。3 3种种权限类型:对象权限、语句权限和隐含权限。权限类型:对象权限、语句权限和隐含权限。角色是数据库管理系统为方便权限管理而设置的管理单位。角色是数据库管理系统为方便权限管理而设置的管理单位。角色中的所有成员继承角色所拥有的权限。角色中的所有成员继承角色所拥有的权限。23数据库技术与应用 本章思考本章思考(1 1)SQL Server 2008SQL Server 2008提供了哪些安全管理机制?安提供了哪些
25、安全管理机制?安全性管理是建立在什么机制上的?全性管理是建立在什么机制上的?(2 2)SQL Server 2008SQL Server 2008有几种身份验证方式?它们的有几种身份验证方式?它们的区别是什么?哪种身份验证方式更安全?区别是什么?哪种身份验证方式更安全?(3 3)数据库的权限是指什么权限?权限管理的主要任)数据库的权限是指什么权限?权限管理的主要任务是什么?角色中的所有成员务是什么?角色中的所有成员 能否继承该角色能否继承该角色所拥有的权限?所拥有的权限?(4 4)SQL Server 2008SQL Server 2008中有几种角色类型?它们的主中有几种角色类型?它们的主要区别是什么?要区别是什么?(5 5)SQL Server 2008SQL Server 2008安全管理的内容主要包括哪些安全管理的内容主要包括哪些?24数据库技术与应用本章结束25