资源描述
,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,第,10,章,SQL Server,安全管理,单击此处编辑母版标题样式,第,29,讲,SQL Server 2005,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,单击此处编辑母版标题样式,*,第,10,章,SQL Server,安全管理,主讲人:连家剑,第,29,讲,复习,:,存储过程含义、类型、语句格式、调用,含义,:,存储在服务器上的多条,T-SQL,语句的预编译集合。,类型,:,系统存储过程、用户自定存储过程,语句格式,create procedure,存储过程名,形式参数,as,sql,语句,调用存储过程,exec,存储过程名 实在参数,复习,:,触发器的含义、类型、作用、语句格式,含义:,是一种表或视图执行,insert,、,delete,、,update,操作时,被系统,自动执行,的特殊的存储过程。,类型:,按触发的时机分为:后触发器和替代触发器,按触发的事件分为:,Insert,触发器、,Delete,触发器、,Update,触发器,作用:对表实现复杂的数据完整性约束,以防止不正确的操作。,语句格式:,Create trigger,触发器名,on,表名,after,insert,delete,update,as,SQL,语句,复习,:,存储过程和触发器的区别,相同点:,触发器和存储过程都是由多条,T-SQL,语句的预编译集合。,不同点:,存储过程是由用户利用,execute,命令执行,触发器是在用户对某一个表做插入、删除、更新时触发触发器的执行。,引,:,对于一个网络数据库管理系统,安全是很重要的。,如何才能保护数据库不被破坏、偷窃和非法使用?,第,10,章,SQL Server,安全管理,教学内容,基础知识:,安全机制,服务器级的安全管理,数据库级的安全管理,权限管理,第,10,章,SQL Server,安全管理,学习目标,认知目标:,了解安全模式、身份验证、权限验证、登录帐户、服务器角色、数据库角色等概念,能力目标,:,掌握登录帐户、数据库用户、数据库角色的创建,(,重点,),掌握数据库中权限设置管理的方法,(,难点,),一、安全机制,每个网络用户在访问,SQL Server,数据库之前,都必须经过两级安全验证:,身份验证,:验证用户是否拥有,服务器级的“连接权”,,即是否允许访问,SQL Server,服务器。,权限验证,:验证用户是否拥有,数据库级的“访问权”,,即是否可以在数据库上执行操作。,二、服务器级的安全管理,1.,身份验证,(1),两种模式,Windows,身份验证,使用,Windows,操作系统本身提供的安全机制验证用户的身份。只要用户能够通过,Windows 2005,的用户帐户验证,就可连接到,SQL Server,,又称为“,信任连接,”模式。,SQL Server,验证,使用,SQL Server,验证时,必须提供连接到,SQL Server,上登录帐号和口令,(,该帐号和口令由系统管理员事先创建并存储在,SQL Server,中,),。,使用该模式:一是为了和,7.0,版以前的,SQL Server,相兼容;二是如果,SQL Server,安装在,Windows 98,下,必须使用该模式。,二、服务器级的安全管理,1.,身份验证,(2),模式设置,动手实验,1,:设置身份验证模式。,任务,1,:将本地服务器的身份验证模式设置为“混合模式”,右击“本地服务器”“属性”“安全性”,任务,2,:用“,windows”,身份验证连接到本地服务器上。,右击“本地服务器”“编辑,SQL Server,注册属性”,展开“本地服务器”即连接,(,因“,windows”,身份是信任连接,),任务,3,:,用“,SQL Server”,身份验证连接到本地服务器上。,修改登录帐号“,sa”,的密码。,展开“本地服务器”中的“安全性”单击“登录”右击“,sa”“,属性”修改密码,设置“使用,SQL Server,身份验证”。,右击“本地服务器”“编辑,SQL Server,注册属性”勾选“使用,SQL Server,身份验证”输入“登录名”和“密码”,说明:,sa,是一个,超级登录帐号,,具有操作服务器的一切权限。,二、服务器级的安全管理,2.,登录帐号,含义:登录者,用来连接,SQL server,的帐号。,两种类型:,windows,身份验证时的登录帐号,(,即用户帐号,),。,形式为“域,(,或计算机,),名,用户,(,或组,)”,系统内建的本地组,采用“,BUILTIN Administrators”,形式,SQL server,身份验证时,由系统管理员创建的登录帐号和密码。,sa,是一个内置的,SQL Server,超级登录帐号,,该账户拥有最高的管理权限,具有操作服务器的一切权限。,动手实验,2,:登录帐号的使用,任务,1,:,将,windows 2005,中的某个组或用户设置为登录帐号;创建个“,SQL Server”,登录帐号,登录名为,st1,和,st2,。,方法:双击“服务器”安全性右击“登录”“新建登录”,创建“,windows 2005”,登录帐号。,单击“名称”旁的“浏览”按钮 选择要加入的组或用户,创建“,SQL Server”,登录帐号。,在“名称”框中输入“,st1”,选择“,SQL Server,身份验证”输入密码,动手实验,2,:登录帐号的使用,任务,2,:,使用,st1,登录帐号连接到,SQL Server,服务器,请问能否查看,xscj,库中的数据,?,为什么?,说明:普通登录帐号必须赋予了,服务器角色,后,才会具有服务器范围内的操作权限。,任务,3,:,查看各登录帐号的服务器角色。,右击“登录帐号”“属性”,二、服务器级安全性的管理,3.,服务器角色,含义:,系统定义的,具有不同权限的组,,其组成员是,登录帐号。,服务器角色不能增加或删除,只能对其中的成员进行修改。,常用的服务器角色,动手实验,3,:服务器角色的使用,任务,1,:,了解各服务器角色中的成员及权限。,双击“服务器”“安全性”“服务器角色”,任务,2,:,将登录帐号,st1,赋予“,database creators,”,的服务器角色,使其具有可创建和更改数据库的权限。,在“服务器角色”窗口中,右击“,database creators”,角色“属性”单击“添加”选择成员,请思考:使用,st1,登录帐号连接到,SQL Server,服务器,请问能否查看,xscj,库中的表对象,?,为什么?,说明:尽管普通登录帐号已赋予了服务器角色,(,sysadmin,除外,),,但仍没有使用其它,数据库对象,(,表,/,视图,/,存储过程等,),的权限。因为,SQL Server,是以,数据库用户名,来访问数据库的。,动手实验,3,:服务器角色的使用,任务,3,:,将登录帐号,st2,赋予,“,sysadmin,”,的服务器角色,使其具有,对系统的所有操作权。,说明:,若将登录帐号,st2,加入到,sysadmin,服务器角色中,以该帐号登录的用户就拥有了对系统的所有操作权。,任务,4,:,分别以,st1,和,st2,登录,SQL Server,服务器,查看,xscj,库中的各对象,请思考哪个登录帐号的权限大?,任务,5,:,因某种原因,要取消登录帐号为,st2,所拥有的对服务器的所有操作权,但仍能登录,SQL Server,服务器,如何设置?,在“服务器角色”窗口中,右击“,sysadmin”,角色“属性”选择成员单击“删除”,三、数据库级的安全管理,1.,数据库用户简介,含义:,如果要使登录帐号具有访问数据库的权力,必须,将登录帐号映射为数据库用户名,。所以,,每一个登录帐号必须对应一个数据库用户名称,。,登录帐号,sa,(或,windows,帐号)对应的数据库用户名为,dbo,,,dbo,用户拥有操作数据库的所有权限(权限最高)。,凡具有,sysadmin,服务器角色的登录帐号,自动映射为,dbo,。,其它登录帐号在某库中没有对应的用户名称时,就映射到,guest,用户帐号上,若没有,guest(,如,xscj,库,),,则不能查看到该数据库对象。,三、数据库级的安全管理,1.,数据库用户简介,含义:,如果要使登录帐号具有访问数据库的权力,必须,将登录帐号映射为数据库用户名,。,登录帐号和数据库用户的区别:,SQL Server,数据库,DB1,DB2,DB3,数据库用户名,(提供数据库访问),登录帐号,(提供,SQL server,访问),用户,说明:每个登录帐号要,对应,一个数据库用户名称。,三、数据库级的安全管理,1.,数据库用户简介,内置的用户名称:,dbo,和,guest,登录帐号,sa,(或,windows,帐号)对应的数据库用户名为,dbo,,,dbo,用户拥有操作数据库的最高权限。凡具有,sysadmin,服务器角色的登录帐号,自动映射为,dbo,。,其它登录帐号在某库中没有对应的用户名时,就映射到,guest,用户帐号上(对数据库的访问权限最低)。若没有,guest(,如,xscj,库,),,则不能查看到该数据库对象。,例如,:,在,xscj,库中,登录帐号,st1,既没有映射相应的用户名,又没有,guest,,所以,,st1,不能查看到该库中对象的信息,。,动手实验,4,:数据库用户的创建,任务,1,:,将登录帐号,st1,映射为,xscj,库中的一个名为“,u1”,的用户帐号,使“,u1”,能访问该库。,右击,xscj,库中的“用户”“新建数据库用户”,任务,2,:,将登录帐号,st1,同时映射为,pubs,、,northwind,库中的一个用户帐号。,双击“服务器”“安全性”“登录”,在“登录”窗口,双击“,st1”,登录帐号,单击“数据库访问”标签勾选所要访问的数据库,三、数据库级的安全管理,2.,管理数据库用户,修改数据库用户,主要是修改为此用户所设置的用户权限(修改所属的数据库角色)。,删除数据库用户,删除一个登录帐号在当前数据库的映射,使该登录帐号失去访问数据库的权限。,方法,1,:与创建类似,只是取消数据的选定。,方法,2,:在指定数据库的“用户”窗口中,右击要删除的用户名单击“删除”,三、数据库级的安全管理,3.,数据库角色,定义:,是在数据库级别上定义的用户权限组,存在于每个数据库中。其成员是用户帐号。,类型:,固定数据库角色(教材,P210,),自建数据库角色,动手实验,5,:数据库角色的创建,任务,1,:,将,xscj,库的所有者权限赋给,st1,用户。,在“登录”窗口,双击“,st1”,登录帐号 单击“数据库访问”标签勾选“,db_owner”,任务,2,:,创建一个名为“,zdy”,的数据库角色,使该角色具有如下的权限:可查询,xsqk,表、可查询和修改,xs_kc,表、可查询和插入,kc,表,但不能进行删除的权限。,右击,xscj,库的“角色”“新建数据库角色”输入名称“,zdy”“,确定”,双击“,zdy”,单击“权限”按钮设置语句权限,四、权限管理,1.,权限的分类,权限的作用:,用来控制用户如何访问数据库对象。,权限的分类:,对象权限,:是指用户对数据库中的表、视图、存储过程等对象的操作权限。,语句权限,:是指执行数据定义语句的权限。,隐含权限,:是指系统预定义的服务器角色、数据库拥有者和数据库对象拥有者所拥有的权限。该权限不能明确地赋予和撤销。,四、权限管理,2.,权限管理的内容,用户或角色的权限有三种形式,(,教材,P216),:,授予权限:,能执行相应操作,拒绝权限,:,不能执行相应操作,剥夺权限:,不允许执行相应操作,但可以通过加入角色来获得许
展开阅读全文