第11章数据库的安全管理_第1页
第11章数据库的安全管理_第2页
第11章数据库的安全管理_第3页
第11章数据库的安全管理_第4页
第11章数据库的安全管理_第5页
已阅读5页,还剩57页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第十一章数据库的安全性管理第十一章数据库的安全性管理数据库的安全机制1角色管理2权限管理3SQLServer2008服务器登录名4数据库用户511.1数据库的安全机制数据库的安全很重要,事实上它比数据库的设计、创建和执行都要重要!高铁售票网站瘫痪、信息泄露!数据库的安全性包括两个方面的含义:要保证具有数据访问权限的用户能够登录到数据库服务器上,并且能够访问数据以及对数据库对象实施各种权限范围内的操作;要防止所有的非授权用户的非法操作。第十一章数据库的安全性管理SQLServer2008数据库的安全机制SQLServer2008的安全性管理是建立在安全身份验证和访问权限机制上。

SQLServer内部的三层安全级别:1.SQLServer级的安全性第一层是SQLServer服务器级别的安全性,即对登记帐号的管理。2.数据库级别的安全性第二层安全性是数据库级别的安全性,即对数据库用户的管理。3.数据库对象级别的安全性第三层安全性是数据库对象级别的安全性,即对用户的权限管理。第十一章数据库的安全性管理SQLServer2008数据库的安全机制用户对SQLServer数据库中的数据进行访问及操作,必须经过三次认证:第一次认证:验证用户是否具有连接到该SQLServer数据库服务器的资格。第二次认证:当用户访问数据库时,必须验证用户是否是该数据库的合法用户。第三次认证:当用户访问数据库中的数据对象时,验证用户是否具有引用和操作权限。第十一章数据库的安全性管理SQLServer2008SQLServer2008安全机制客户机的安全机制网络传输的安全机制服务器的安全机制数据库的安全机制数据对象的安全机制安全管理一个用户要对某一个数据库进行操作,必须同时满足两个条件:能连接到SQLServer服务器(连接权)有执行对数据库操作的权限(访问权)安全管理房子(SQLServer)大门登录授权606用户安全对象安全对象范围安全对象列表服务器端点、登录用户、数据库数据库用户、角色、应用程序角色、程序集、消息类型、路由、服务、远程服务绑定、全文目录、证书、非对称密钥、对称密钥、约定、架构架构类型、XML架构集合、对象

对象聚合、约束、函数、过程、队列、统计信息、同义词、表、视图安全对象是SQLServer2008数据库引擎授权系统控制对其进行访问的资源。通过创建可以为自己设置安全性的名为“范围”的嵌套层次结构,可以将某些安全对象包含在其他安全对象中。安全对象范围包括服务器、数据库、架构和对象。基本概念用户、数据库用户、账户、账号、登录名和密码。用户是指能够在SQLServer2008安全机制下,访问数据库对象中的数据的操作员或客户。用户若要访问数据库对象,必须获得管理员分配的账号和密码。从SQLServer2008管理系统的角度来看,用户就是一组匹配的账户和密码。账户和账号是一个概念的不同说法,在服务器中的账户又叫登录名(Login),因此访问服务器也称为登录服务器。服务器的登录名可以映射到数据库中成为数据库用户。一个登录名可以映射多个数据库用户,而一个用户只能映射一个登录名。基本概念角色(roles)。角色是SQLServer2008中管理权限相近的安全账户的集合,相当于Windows域中的组。权限。权限是SQLServer2008安全性的最后一个级别,实际上是安全机制的设计者分配给某一个用户(或角色)访问数据库时,对数据对象的可以进行的操作集合。11.2角色管理服务器角色数据库角色应用程序角色SQLServer200811.2角色管理11.2.1服务器角色SQLServer2008提供了9种固定的服务器角色,用户不能自己创建服务器角色。可以在对象资源管理器中,通过依次展开“安全性”→“服务器角色”节点,看到这9种服务器角色,如左图所示。第十一章数据库的安全性管理SQLServer2008角色管理服务器角色1.固定服务器角色的权限说明:sysadmin:可以在服务器上执行任何操作。Serveradmin:可以更改服务器范围的配置选项和关闭服务器。securityadmin:可以管理登录名及其属性。processadmin:可以终止在SQLServer实例中运行的进程。setupadmin:可以添加和删除链接服务器。bulkadmin:可以运行BulkInsert语句。diskadmin:可以管理磁盘文件。dbcreator:可以创建、更改、删除和还原任何数据库。public:拥有查看数据库权限,但不能对其做修改。前面8个服务器角色的权限是系统预先设定好的,不能更改,只有public角色的权限可以根据需要修改。第十一章数据库的安全性管理SQLServer2008角色管理2.查看和设置服务器public角色的权限:⑴在对象资源管理器中,依次展开“安全性”→“服务器角色”节点,选择“public”,右击,选择“属性”。⑵在“服务器角色属性”对话框的“权限”页中,可以查看当前public角色的权限并可根据需要进行修改,如下图所示。第十一章数据库的安全性管理SQLServer2008角色管理11.2.2数据库角色如果我们要查看stusystem的数据库角色,可以在对象资源管理器中,通过依次展开“数据库”→“stusystem”→“安全性”→“角色”→“数据库角色”节点,看到这10种数据库角色,如左图所示。第十一章数据库的安全性管理SQLServer2008角色管理1.固定数据库角色的权限说明:db_accessadmin:可以管理登录名对该数据库的访问。db_backupoperator:可以备份数据库。db_datareader:可以从所有用户定义表中读取所有数据。db_datawriter:可以对所有用户定义表进行添加、删除或更改数据。db_ddladmin:可以在该数据库中执行任何DDL命令。db_denydatareader:不能从用户表中读取数据。db_denydatawriter:不能对用户表执行添加、修改或删除数据。db_owner:可以执行数据库的所有活动,在该数据库中拥有全部权限。db_securityadmin:可以修改角色成员身份和管理权限。public:可以看到任何由拥有公共或完整权限的用户所创建的数据库对象。每个数据库用户都属于public数据库角色。只有public角色的权限可以根据需要修改。第十一章数据库的安全性管理SQLServer2008角色管理2.查看或设置数据库public角色的权限:⑴在对象资源管理器中,依次展开“数据库”→“stusystem”→“安全性”→“角色”→“数据库角色”节点,选择“public”,右击选择“属性”命令,打开“数据库角色属性”对话框。⑵在“数据库角色属性”对话框。在“安全对象”页中,可以查看当前public角色的权限并可根据需要进行修改,如左图所示。第十一章数据库的安全性管理SQLServer2008角色管理3.新建数据库角色:例如:要在数据库stusystem中新建一个数据库角色。具体步骤如下:⑴在对象资源管理器中,依次展开“数据库”→“stusystem”→“安全性”→“角色”节点,选择“数据库角色”,右击,选择“新建数据库角色”命令,打开“数据库角色-新建”对话框,如下图所示。第十一章数据库的安全性管理SQLServer2008角色管理⑵在“数据库角色-新建”对话框中,默认选择“常规”选择页。在此页可以定义新数据库角色。⑶一般来说完成“常规”页的设置,数据库角色即可建立。⑷单击“确定”按钮,即可创建新的数据库角色。SQLServer2008第十一章数据库的安全性管理角色管理11.2.3应用程序角色数据库可为多个应用程序而存在。不同的应用程序对同一数据库有不同的可访问范围,因此有了应用程序角色的概念。例如,对一个计费系统数据库,同时被客户关系管理系统和网上营业厅系统访问,这些系统都拥有自己关注的数据信息,也存在彼此之间不可访问的信息。这就是两个不同的应用程序角色。第十一章数据库的安全性管理SQLServer2008角色管理创建应用程序角色:【例12-1】在stusystem中创建一个应用程序角色“student_role”。具体步骤如下:⑴在对象资源管理器中,依次展开“数据库”→“stusystem”→“安全性”→“角色”节点,选择“应用程序角色”,右击选择“新建应用程序角色”命令,打开对话框。⑵在“应用程序角色-新建”对话框的“常规”页中添加角色名称“student_role”,并输入密码等信息。⑶单击“确定”按钮,即可创建新的应用程序角色。第十一章数据库的安全性管理SQLServer200811.3权限管理数据库权限用于控制对数据库对象的访问和语句执行。数据库权限可分为数据库对象权限和数据库语句权限,主要包括授予、撤销和拒绝管理。授予权限(GRANT):允许用户或角色具有某种操作权限;撤销权限(REVOKE):撤销以前授予或拒绝了的权限;拒绝权限(DENY):拒绝给安全帐户授予权限,并且可以防止安全帐户通过其组或角色成员身份继承权限。第十一章数据库的安全性管理SQLServer2008权限管理11.3.1权限类型根据操作的对象不同,权限的类型也不相同第十一章数据库的安全性管理SQLServer2008对象权限类型权限列举数据库创建操作,修改操作,备份操作CREATEDATABASE、CREATETABLE、CREATEVIEW、CREATEFUNCTION、CREATEPROCEDURE、CREAATETRIGGER,ALTERDATABASE、ALTERTABLE、ALTERVIEW、ALTERFUNCTION、ALTERPROCEDURE、ALTERTRIGGER,BACKUPDATABASE、BACKUPLOG,CONNECT,CONTROL等。表和视图插入数据,更新数据,删除数据,查询,引用INSERT,UPDATE,DELETE,SELECT,REFERENCES等。存储过程执行,控制查看,定义EXECUTE,CONTROL等。标量函数执行,引用,控制EXECUTE,REFERENCES,CONTROL等。表值函数插入数据,更新数据,删除数据,查询,引用INSERT,UPDATE,DELETE,SELECT,REFERENCES等。权限管理11.3.2设置权限利用SSMS设置权限:以对stusystem数据库用户Banana_Anna的设置权限为例,操作步骤如下:⑴在对象资源管理器中,依次展开“数据库”→“stusystem”→“安全性”→“用户”节点,选择“Banana_Anna”,右击选择“属性”命令,打开“数据库用户”对话框,选择“安全对象”选择页。如左图所示。第十一章数据库的安全性管理SQLServer2008权限管理⑵在“数据库用户”的“安全对象”页中,单击“搜索”,调出“添加对象”对话框。选择“特定对象”单选按钮,然后单击“确定”,调出“选择对象”对话框。在“选择对象”对话框中,单击“对象类型”按钮,调出“选择对象类型”对话框。第十一章数据库的安全性管理SQLServer2008权限管理在“选择对象”对话框中,单击“浏览”按钮,调出“查找对象”对话框,根据需要选择匹配的对象,如下图所示。第十一章数据库的安全性管理SQLServer2008权限管理⑶返回到“数据库用户”的“安全对象”页中,在“安全对象”列表中,选中要分配权限的对象,在下面的“权限”列表中设置相应权限。第十一章数据库的安全性管理SQLServer2008权限管理利用命令设置权限:利用DCL语句来进行权限管理操作。主要有:GRANT语句:使用GRANT语句可以将安全对象的权限赋予安全主体。REVOKE语句:利用REVOKE可以撤销以前授予或拒绝了的权限。DENY语句:使用DENY语句可以拒绝授予主体权限,并且可以防止主体通过其组或角色成员身份继承权限。SQLServer2008第十一章数据库的安全性管理11.4服务器登录名用户连接到SQLServer上的唯一方法是通过登录名。对登录方式的管理和设计包括:身份验证模式设置。服务器角色分配。登录帐号管理等。第十一章数据库的安全性管理SQLServer2008服务器登录名11.4.1身份验证模式Windows身份验证模式:SQLServer仅使用Windows的登录帐户名和密码来确认客户端用户。每个用户并不都需要在SQLServer内部必须存在一个特定的登录名。Windows身份验证是默认身份验证模式,并且比SQLServer身份验证更为安全。SQLServer2008第十一章数据库的安全性管理服务器登录名11.4.1身份验证模式混合身份验证模式在混合身份验证模式下,既可以使用Windows身份验证,也可以使用SQLServer身份验证。用户要登录服务器时,必须要输入登录名和密码。SQLServer的登录名和密码由数据库管理员在SQLServer内部创建,并存储在系统syslogins视图中。SQLServer2008第十一章数据库的安全性管理身份验证模式SQLServerWindows身份验证用户身份验证模式SQLServerWindows身份验证用户身份验证模式用户Windows身份验证SQLServer身份验证模式服务器登录名3.查看和设置身份验证模式在使用过程中,用户可以根据需要,利用SSMS来重新设置服务器的身份验证模式。具体的过程如下:⑴在SSMS的“对象资源管理器”中,选择要修改的服务器名,右击选择“属性”。如左图所示。第十一章数据库的安全性管理SQLServer2008服务器登录名⑵打开“服务器属性”窗口,在“安全性”页上可以查看当前选择的是哪种身份验证模式,如左图所示。如果要修改验证模式,在“服务器身份验证”下,选择新的服务器身份验证模式,然后单击“确定”按钮。⑶重新启动SQLServer,使设置生效。第十一章数据库的安全性管理SQLServer2008服务器登录名11.4.2账号管理所有的登陆帐号都存储在master数据库的syslogins视图中:select*frommaster.sys.syslogins创建登录账号具体步骤如下:⑴在SSMS的对象资源管理器中,展开“安全性”节点,选择“登录名”,右击选择“新建登录名”。打开“登录名-新建”对话框。如左图所示。第十一章数据库的安全性管理SQLServer2008服务器登录名账号管理创建登录账号具体步骤如下:⑵进入“登录名-新建”对话框,默认是选择“常规”页。在该页中进行新建登录名设置。⑶在“登录名-新建”对话框中选择“服务器角色”页,如左图所示。在这里可以设置新建的登录账号作为哪些服务器角色中的成员。第十一章数据库的安全性管理SQLServer2008服务器登录名账号管理创建登录账号具体步骤如下:⑷在“登录名-新建”对话框中选择“用户映射”页,可以指定该登录账号能够访问的数据库,并定义登录账号与数据库用户的映射。如左图所示。第十一章数据库的安全性管理SQLServer2008服务器登录名账号管理创建登录账号具体步骤如下:⑸在“登录名-新建”对话框中选择“安全对象”页。可以为新建的登录账号指定授予或拒绝某些权限。如左图所示。第十一章数据库的安全性管理SQLServer2008服务器登录名账号管理创建登录账号⑹在“登录名-新建”对话框中选择“状态”页,可以在“状态”页设置与登录相关的选项。如左图所示。⑺在完成上述设置之后,单击“确定”按钮即可创建登录账号。也可以使用CREATELOGIN语句来创建登录账号。第十一章数据库的安全性管理SQLServer2008服务器登录名2.修改登录账号在对象资源管理器中,依次展开“安全性”→“登录名”节点,选择需要修改的登录名,右击,选择“属性”命令,打开“登录属性”对话框。在此对话框中,可以对登录帐号进行修改。修改登录账号的命令是ALTERLOGIN语句。SQLServer2008第十一章数据库的安全性管理服务器登录名3.删除登录账号在“对象资源管理器”中,依次展开“安全性”→“登录名”节点,选择需要删除的登录名,右击,选择“删除”命令,在出现的“删除登录”对话框中单击“确定”按钮即可删除该登录账号。删除登录账号的命令是DROPLOGIN语句。第十一章数据库的安全性管理SQLServer200811.5数据库用户数据库用户服务器登录名只能连接到服务器本身;它不能使用SQLServer中的任何用户数据库。这好比服务器登录名是进入大楼的通行证,而数据库用户则是进入房间的钥匙。数据库用户是数据库级别的安全主体,所有用户都存储在每个数据库的Sysusers视图中。第十一章数据库的安全性管理SQLServer2008数据库用户访问数据库需要在那个数据库上建立数据库用户从登录中映射特殊用户Dboguest用户SQLServer数据库管理数据库安全数据库用户数据库用户11.5.1创建数据库用户1.利用SSMS创建数据库用户以为stusystem数据库创建用户Anna为例,操作步骤如下:⑴在对象资源管理器中,依次展开“数据库”→“stusystem”→“安全性”节点,选择“用户”,右击选择“新建用户”命令,打开“数据库用户-新建”对话框,选择“常规”选择页。如左图所示。第十一章数据库的安全性管理SQLServer2008数据库用户⑵在“数据库用户-新建”对话框的“常规”选择页中,输入用户名“Anna”,选择登录名,这里选择“Banana_Anna”,默认架构名称,然后添加此用户拥有的架构和此用户的数据库角色。⑶如果需要,可以对“安全对象”和“扩展属性”中的选项进行设置。⑷单击“确定”按钮,完成新的数据库用户的创建操作。SQLServer2008第十一章数据库的安全性管理数据库用户2.利用命令创建数据库用户创建数据库用户的命令是CREATEUSER语句。第十一章数据库的安全性管理SQLServer2008数据库用户3.内置数据库用户在SQLServer的数据库级别上存在着两个特殊的数据库用户:dbo:是数据库的拥有者,是数据库的管理员。guest:guest用户可以使已经登录到SQLServer服务器上的用户访问数据库。所有的数据库都有dbo和guest用户。SQLServer2008第十一章数据库的安全性管理Page54/28数据库用户11.5.2修改和删除数据库用户1.使用SSMS修改和删除数据库用户使用SSMS修改数据库用户:在“对象资源管理器”中,选择要修改的数据库用户,右击,选择“属性”命令,如左图所示。在打开的“数据库用户”窗口中,可以对该数据库用户的属性进行修改。第十一章数据库的安全性管理SQLServer2008数据库用户修改和删除数据库用户使用SSMS修改和删除数据库用户使用SSMS删除数据库用户:在“对

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论