数据库系统维护课件

上传人:Xgjmqtw****nqtwad... 文档编号:252733562 上传时间:2024-11-19 格式:PPT 页数:213 大小:2.27MB
返回 下载 相关 举报
数据库系统维护课件_第1页
第1页 / 共213页
数据库系统维护课件_第2页
第2页 / 共213页
数据库系统维护课件_第3页
第3页 / 共213页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,/205-208,*,/204-216,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,/205-208,*,/204-216,1,/204-216,能力目标,(1),会进行,SQL Server,安全验证模式设置。,(2),会创建和管理数据库服务器登录账号。,(3),会创建和管理数据库角色和用户。,(4),能进行权限的设置。,(5),能使用游标遍历数据。,(6),能根据实际情况进行数据库备份与还原。,(7),会导入和导出数据库中的数据。,(8),会分离和附加数据库。,(9),会根据实际需求选择数据库安全策略。,1/204-216能力目标,2,/204-216,知识目标,(1),了解数据库安全的基本概念。,(2),掌握,SQL Server,安全验证模式及其特点。,(3),掌握数据库登录账号和数据库用户概念。,(4),掌握角色和权限的概念。,(5),掌握游标的使用方法。,(6),掌握数据库的备份和还原方法。,(7),掌握数据库数据的导入与导出方法。,(8),了解数据库的备份策略。,2/204-216知识目标,3,/204-216,4.1,创建用户并为之授权,数据库最大的特点就是数据共享,但同时数据共享会带来多方面的干扰和破坏问题,如因系统故障或人为破坏而造成的数据丢失问题,因不合法的使用而造成的数据泄密或破坏等。所以数据库管理员必须能够针对上述不同的情况,在技术上对数据进行安全性保护。它涉及,SQL Server,的认证模式、登录账号、数据库用户、角色和存取权限的管理。,3/204-2164.1 创建用户并为之授权,4,/204-216,4.1.1 SQL Server 2008,的安全机制,目前,,SQL Server 2008,的安全性机制主要划分为,4,个等级,分别为:,(1),客户机操作系统的安全性。,(2)SQL Server 2008,的登录安全性,登录账号和密码。,(3),数据库的使用安全性,该用户账号对数据库的访问权限。,(4),数据库对象的使用安全性,该用户账号对数据库对象的访问权限。,4/204-2164.1.1 SQL Server 200,5,/204-216,1,操作系统的安全性,SQL Server 2008,与其它数据库管理系统一样,运行在某一个特定操作系统平台下的应用程序,因此操作系统的安全性直接影响到,SQL Server 2008,的安全性。在用户使用客户机通过网络实现对,SQL server 2008,服务器的访问时,用户首先要获得,客户机操作系统,的使用权。,5/204-2161 操作系统的安全性,6,/204-216,2 SQL Server 2008,的登录安全性,SQL Server 2008,服务器,级的安全性建立在控制服务器登陆账号和密码的基础上。用户在登录时提供的登录账号和密码,决定了用户能否获得,SQL Server 2008,的访问权,以及在登录以后,用户在访问,SQL Server 2008,进程时可以拥有的权利。,6/204-2162 SQL Server 2008的登录,7,/204-216,3,数据库的使用安全性,在用户通过,SQL server 2008,服务器的安全性检验后,将直接面对不同的,数据库,入口,这是用户接受的第三次安全性检验。,在创建用户登录账号时,,SQL Server 2008,会提示用户选择默认数据库,以后用户每次连接上服务器后,都会自动转到默认的数据库上。对任何用户来说,,master,数据库的大门总是打开的,如果在设置登录账号时没有指定默认数据库,则用户的权限局限在,master,数据库内。,7/204-216 3 数据库的使用安全性,8,/204-216,4,数据库对象的使用安全性,在创建,数据库对象,时,,SQL Server 2008,自动把该数据库对象的拥有权赋予该对象的创建者。默认情况下,只有数据库的拥有者可以在该数据库中进行操作。,当一个非数据库拥有者想操作数据库中的对象时,必须先由数据库拥有者赋予该对象执行特定的操作权限。,8/204-2164 数据库对象的使用安全性,9,/204-216,4.1.2 SQL Server 2008,的验证模式,客户机连接到,SQL Server 2008,数据库服务器时,必须要以账户和密码登录,称为身份验证。,SQL Server 2008,支持两种身份验证模式:,Windows,身份验证模式和混合身份验证模式。,(1)Windows,身份验证模式,Windows,身份验证是由,Windows,操作系统来验证用户身份。,SQL Server 2008,数据,9/204-2164.1.2 SQL Server 200,10,/204-216,库系统通常运行在,Windows,服务器上,而,Windows,作为网络操作系统,本身就具备管理登录、验证账户合法性的能力,因此,Windows,验证模式正是利用了这一用户安全性和账号管理的机制,允许,SQL Server 2008,可以使用,Windows,的用户名和口令。在这种模式下,用户只需要通过,Windows,的验证,就可以连接到,SQL Server 2008,服务器,而服务器本身也就不需要管理一套登录数据。,10/204-216库系统通常运行在Windows服务器上,,11,/204-216,Windows,身份验证模式下主要有以下优点:,1),数据库管理员的工作可以集中在管理数据库方面,而不是管理用户账户。对用户账户的管理可以交给,Windows,操作系统去完成。,2)Window,操作系统有着更强的用户账户管理工具。可以设置账户锁定、密码期限等。如果不是通过定制来扩展,SQL Server,,,SQL Server,是不具备这些功能的。,3)Windows,操作系统的组策略支持多个用户同时被授权访问,SQL Server 2008,。,11/204-216Windows身份验证模式下主要有以下优,12,/204-216,(2),混合身份验证模式,SQL Server,身份验证模式允许用户使用,SQL Server,登录,ID,连接到,SQL Server 2008,服务器。在该验证模式下,用户在连接,SQL Server 2008,服务器时必须提供登录名和登录密码,这些登录信息存储在系统表,syslogins,中,与,Windows,的登录账号无关。如果用户无法提供,SQL Server 2008,登录,ID,,则使用,Windows,身份验证对其进行身份验证。,12/204-216 (2)混合身份验证模式,13,/204-216,混合验证模式具有以下优点:,1),创建了,Windows,操作系统之上的另外一个安全层次。,2),支持更大范围的用户,如非,Windows NT,用户、,Novell,网用户等。,3),一个应用程序可以使用单个的,SQL Server,登录账号和口令。,需要说明的是,混合验证模式是为了向后兼容以及满足非,Windows,用户的需求,在实际的使用中,对于安全性要求较高的应用系统,建议优先考虑使用,Windows,身份验证模式。,13/204-216 混合验证模式具有以下优点:,14,/204-216,通过以下方法设置服务器身份验证模式:,启动,SSMS,窗口,在“对象资源管理器”中右键单击数据库服务器,选择“属性”选项,打开服务器属性对话框,在对话框中选择“安全性”选项页,选择服务器的身份验证模式,如图,4-1,所示。,14/204-216通过以下方法设置服务器身份验证模式:,15,/204-216,图,4-1,设置服务器身份验证模式,15/204-216图4-1 设置服务器身份验证模式,16,/204-216,4.1.3 SQL Server,的登录账号,(1),登录账号,登录账号是基于服务器使用的用户名,是系统级信息,存在于,master,数据库的,syslogins,系统表中。在,Windows,身份验证模式下,可以创建基于,Windows,组或用户的登录账号;在混合身份验证模式下,除了可以创建基于,Windows,组或用户的登录账号外,还可以创建,SQL Server,自己的登录账号。创建,SQL Server,登录账号只能由系统管理员完成。,16/204-2164.1.3 SQL Server的登录,17,/204-216,在安装好,SQL Server 2008,后,系统会自动创建两个内置的登录账号:,Windows,系统管理员组账号“计算机名,Administrator”,和系统管理员账号“,sa”,。其中,,sa,是为了向后兼容提供的特殊登录账号,默认情况下,它指派给固定服务器角色,sysadmin,作为混合身份验证模式下,SQL Server,的系统管理员。,需要说明的是,虽然,SQL Server,有两个内置的管理员账号,但在平时的使用过程中,不应直接使用它们。数据库管理员应该,17/204-216 在安装好SQL Server,18,/204-216,(2),使用对象资源管理器创建和管理登录账号,建立自己的系统管理员账号,使其成为,sysadmin,固定服务器角色的成员。只有在某种情况下没有办法登录到,SQL Server 2008,服务器时,才使用内置的管理员登录。,1),创建登录账号。,【,例,4-1】,使用对象资源管理器创建一个用户名为“,s_CeShi”,,密码为“,123456”,的,SQL Server,用户。, 启动,SSMS,窗口,选择使用,Windows,身份,18/204-216(2)使用对象资源管理器创建和管理登,19,/204-216,验证登录。, 在“对象资源管理器”中依次展开“服务器”“安全性”节点。, 右键单击“登录名”,在弹出的菜单中选择“新建登录名”选项,打开“新建登录名”对话框,如图,4-2,所示。, 在登录名栏中输入要创建的登录名“,s_CeShi”,,选择“,SQL Server,身份验证”,输入密码“,123456”,,去掉“强制实施密码策略”复选框,其它使用默认选项,点击“确定”按钮,用户“,s_CeShi”,创建完成。,19/204-216 验证登录。,20,/204-216,图,4-2 “,新建登录名”对话框,20/204-216图4-2 “新建登录名”对话框,21,/204-216,2),查看登录账号。启动,SSMS,窗口,选择使用,Windows,身份验证登录。在“对象资源管理器”中依次展开“服务器”“安全性” “登录名”节点,查看所有的服务器登录用户。通过鼠标右键单击某个用户,在弹出的菜单中选择“属性”选项打开属性对话框,如图,4-3,所示。在此对话框中可以修改用户密码或者选择密码策略。,21/204-2162)查看登录账号。启动 SSMS窗口,22,/204-216,图,4-3 “sa,用户属性”对话框,22/204-216图4-3 “sa用户属性”对话框,23,/204-216,(3),使用,T-SQL,语句创建和管理登录账号,1),创建登录账号。用户可以通过执行系统存储过程,sp_addlogin,来创建用户,语法格式如下:,SP_ADDLOGIN,登录的名称, ,登录密码, ,登录的默认数据库, ,默认语言, ,安全标识号, ,加密,23/204-216(3)使用T-SQL语句创建和管理登,24,/204-216,说明:, 登录密码:默认设置为,NULL,,执行后,,password,被加密并存储在系统表中。, 登录的默认数据库:登录后所连接到的数据库,默认设置为,master,。, 默认语言:用户登录到,SQL Server,时系统指派的默认语言,默认设置为,NULL,。如果没有指定,language,,那么,language,被设置为服务器当前的默认语言。,24/204-216 说明:,25,/204-216,安全标识号,(SID),:,sid,的数据类型为,varbinary(16),,默认设置为,NULL,。如果,sid,为,NULL,,则系统为新登录生成,SID,。, 加密:指定当密码存储在系统表中时,密码是否要加密。,encryption_option,的数据类型为,varchar(20),。,25/204-216 安全标识号 (SID):sid 的数,26,/204-216,【,例,4-2】,使用,T-SQL,语句创建创建一个用户名为“,S_CeShi”,,密码为“,123456”,的,SQL Server,用户。,EXEC SP_ADDLOGIN s_CeShi,123456,2),删除登录账号。删除数据库登录账号使用系统存储过程,sp_droplogin,,语法格式如下:,EXEC SP_DROPLOGIN,登录名,说明:,登录名:要删除的登录,没有默认值,必须已存在于,SQL Server,中。,26/204-216【例4-2】使用T-SQL语句创建创建一,27,/204-216,4.1.4 SQL Server,的数据库用户,(1),数据库用户,在实现安全登录后,如果系统管理员没有授予该用户访问某数据库的权限,则该用户仍然不能访问此数据库。数据库的访问权限是通过映射数据库用户与登录账号之间的关系来实现的。,当登录账号通过了,Windows,身份验证或,SQL Server,混合身份验证后,必须设置数据库用户才可以对数据及其对象进行操作。所以,一个,27/204-2164.1.4 SQL Server的数据,28,/204-216,登录账号在不同的数据库中可以映射成不同的数据库用户名称,从而获得不同的操作权限,如登录账号,sa,自动与每一个数据库用户,dbo,相关联。,数据库用户用来指定哪些用户可以访问哪些数据库,它是数据库级的安全实体,就像登录账号是服务器级的安全实体一样。,SQL Server 2008,的数据库级别上有两个特殊的数据库用户:,dbo,用户和,guest,用户。,28/204-216登录账号在不同的数据库中可以映射成不同的,29,/204-216,dbo,用户是数据库拥有者在安装,SQL Server 2008,时被设置在,model,系统数据库中的,它对应于创建该数据库的登录账号。,dbo,用户存在于每一个数据库中,且不能被删除。所用系统数据库的,dbo,用户都对应于,sa,登录账号,它是数据库的最高权力拥有者,可以在数据库范围内执行所有操作。,guest,用户是一个能加入到数据库,并允许具有有效,SQL Server,登录的任何人访问数据库的一个特殊用户,以,guest,用户访问数据库的用户被认为是,guest,用户的身份并,29/204-216dbo用户是数据库拥有者在安装SQL S,30,/204-216,且继承,guest,用户的所有权限和许可。但是与,SQL Server 2000,中不同,在,SQL Server 2008,中,guest,用户已经默认存在于每个数据库中,但默认情况下,会在新数据库中禁用,guest,。一旦启用,guest,用户,所有可以登录,SQL Server,的任何人,都可以用,guest,身份来访问数据库,并拥有,guest,用户的所有权限和许可。同样,,guest,用户在数据库中也不能被删除。,30/204-216且继承guest用户的所有权限和许可。但,31,/204-216,(2),使用对象资源管理器创建和管理数据库用户,1),创建数据库用户。,【,例,4-3】,使用对象资源管理器为登录账号,s_CeShi,创建名为,d_CeShi,数据库用户。, 启动,SSMS,窗口,在“对象资源管理器”中依次展开“数据库”“,student”,数据库“安全性”节点。, 右击“用户”,在弹出的菜单中选择“新建用户”选项,打开“新建数据库用户”对话框,如图,4-4,所示。,31/204-216(2)使用对象资源管理器创建和管理数,32,/204-216,图,4-4 “,新建数据库用户”对话框,32/204-216图4-4 “新建数据库用户”对话框,33,/204-216,在对话框的用户名栏输入“,d_CeShi”,,点击登录名后面的按钮打开“选择登录名”对话框,如图,4-5,所示。,图,4-5 “,选择登录名”对话框,33/204-216 在对话框的用户名栏输入“d_Ce,34,/204-216,在“选择登录名”对话框中点击“浏览”按钮,打开“查找对象”对话框,在对话框的“匹配的对象”中找到“,s_CeShi”,,并将其前面的复选框打上勾,如图,4-6,所示。,图,4-6 “,查找对象”对话框,34/204-216 在“选择登录名”对话框中点,35,/204-216,点击,3,次“确定”按钮后,登录名,s_CeShi,对应的数据库用户,d_CeShi,就创建好了。,2),查看数据库用户。展开某一个数据库的“安全性”“用户”节点,会看到所有该数据库的用户,可以通过鼠标右键单击某个用户,在弹出的菜单中选择“属性”选项打开属性对话框查看并设置相应的属性。,35/204-216点击3次“确定”按钮后,登录名s_CeS,36,/204-216,(3),使用,T-SQL,语句创建和管理数据库用户,1),创建数据库用户。用户也可以通过执行系统存储过程,sp_grantdbaccess,来创建数据库用户,语法格式如下:,SP_GRANTDBACCESS,登录名, ,数据库用户名, OUTPUT ,说明:,登录名:当前数据库中新安全账户的登录名称。,数据库用户名:数据库中账户的名称,如果该参数缺省,新建的数据库用户名默认和登录名一样。,36/204-216(3)使用T-SQL语句创建和管理数,37,/204-216,【,例,4-4】,使用,T-SQL,语句为登录账号,s_CeShi,创建名为,d_CeShi,数据库用户。,USE student,GO,EXEC SP_GRANTDBACCESS s_CeShi,d_CeShi,GO,2),删除数据库用户。删除数据库用户使用系统存储过程,sp_revokedbaccess,,语法格式如下:,EXEC SP_REVOKEDBACCESS,用户名,37/204-216【例4-4】使用T-SQL语句为登录账号,38,/204-216,说明:,用户名:要删除的数据库用户名称,无默认值,可以是服务器登录、,Windows,登录或,Windows,组的名称,并且必须存在于当前数据库中。,38/204-216说明:,39,/204-216,4.1.5 SQL Server 2008,的权限管理,(1)SQL Server 2008,的权限,SQL Server 2008,对象的使用权限为访问数据库设置的最后一道安全设施。权限确定了数据库用户可以在,SQL Server 2008,数据库中的操作。用户在执行更改数据库定义或访问数据库的任何操作之前,都必须有相应的权限。,在,SQL Server 2008,中分为,3,种类型的权限,即对象权限、语句权限和预定义权限。,39/204-2164.1.5 SQL Server 20,40,/204-216,1),对象权限。对象权限是指对特定的数据库对象,如表、视图、字段、存储过程等的操作权限,它决定了数据库用户可以对表、视图等数据库对象执行哪些操作。,SQL Server 2008,对象权限见表,4-1,。,表,4-1 SQL Server 2008,的操作权限说明,40/204-216 1)对象权限。对象权限是指对,41,/204-216,2),语句权限。语句权限用于控制创建数据库或数据库中的对象所涉及到的权限。如某用户想在数据库中创建数据表,则要求该用户应该先拥有,create table,语句权限。,SQL Server 2008,语句权限见表,4-2,。,表,4-2 SQL Server 2008,的语句权限说明,41/204-2162)语句权限。语句权限用于控制创建数,42,/204-216,表,4-2 SQL Server 2008,的语句权限说明(续),42/204-216表4-2 SQL Server 200,43,/204-216,(2),使用对象资源管理器授予权限,3),预定义权限。预定义权限又称为隐含权限,是指系统预定义的固定服务器角色、固定数据库角色、数据库拥有者、数据库对象拥有者所拥有的权限,这些权限不能明确地被赋予或撤销。,在,SQL Server 2008,中,用户和角色的权限以记录的形式存储在各个,sysprotects,系统表中,权限操作分为,3,种情况:授予某项权限、拒绝某项权限、撤销某项权限。下面举例说明如何给数据库用户授予权限,拒绝和撤销权限将在下一任务中详细介绍。,43/204-216(2)使用对象资源管理器授予权限,44,/204-216,【,例,4-5】,给数据库用户,d_CeShi,赋予,student,表的查询和修改权限。,1),在操作系统的“开始”菜单中打开,SSMS,应用程序,选择使用,Windows,身份验证登录。,2),展开数据库“,student”“,安全性”“用户”,找到用户“,d_CeShi”,,右击之,选择“属性”,打开“数据库用户”对话框,选择“安全对象”选项页,如图,4-7,所示。,44/204-216【例4-5】给数据库用户d_CeShi赋,45,/204-216,图,4-7 “,数据库用户”对话框,45/204-216图4-7 “数据库用户”对话框,46,/204-216,3),点击“搜索”按钮,打开“添加对象”对话框,如图,4-8,所示。在此对话框中选择“特定对象”单选按钮,点击“确定”按钮,打开“选择对象”对话框,如图,4-11,所示。,图,4-8 “,添加对象”对话框,46/204-216 3)点击“搜索”按钮,打开“添加,47,/204-216,图,4-11 “,选择对象”对话框,4),在“选择对象”对话框中,点击“对象类型”按钮,打开“选择对象类型”对话框,勾选“表”复选框,单击“确定”按钮,如图,4-9,所示。,47/204-216图4-11 “选择对象”对话框4),48,/204-216,图,4-9 “,选择对象类型”对话框,5),在“选择对象”对话框中点击“浏览”按钮,在打开的“查找对象”对话框中,勾选,48/204-216图4-9 “选择对象类型”对话框,49,/204-216,图,4-10 “,查找对象”对话框,“student”,表,如图,4-10,所示。单击“确定”按钮,返回“选择对象”对话框。,49/204-216图4-10 “查找对象”对话框“stu,50,/204-216,6),点击“确定”按钮,返回“数据库用户”对话框,选择“安全对象”区域的“,student”,对象,再从下方的权限列表中勾选 “更新”,(,或,Update),和“选择”,(,或,Select),右边的“授予”复选框,如图,4-12,所示。,50/204-2166)点击“确定”按钮,返回“数据库用,51,/204-216,图,4-12 “,数据库用户”对话框,51/204-216图4-12 “数据库用户”对话框,52,/204-216,(3),使用,T-SQL,语句授予权限,SQL Server,中使用,grant,语句进行授权,语法格式如下:,GRANT,权限, . ON,对象, . TO,用户名,或者,GRANT,权限, . ON OBJECT :,对象, . TO,用户名,说明:,1),授予的权限,可以是一个,也可以是多个,多个之间用逗号隔开。可能的权限如表,4-1,和表,52/204-216(3)使用T-SQL语句授予权限SQ,53,/204-216,4-2,(本文稿,P43P45,)所示,也有可能是,ALL,,表示赋予所有权限。,2),赋予权限的对象可以是一个,也可以是多个,可能的对象有:,table,表、,view,、视图、,sequence,序列 、,index,索引。,53/204-2164-2(本文稿P43P45)所示,也有,54,/204-216,【,例,4-6】,授予用户“,zhang”,对数据库中,student,表的,select,查询、,update,修改、,insert,插入权限。,GRANT SELECT,UPDATE,INSERT ON student TO zhang,或者,GRANT SELECT,UPDATE,INSERT ON OBJECT:student TO zhang,54/204-216【例4-6】授予用户“zhang”对数据,55,/204-216,任务实施,王老师是“,09,计算机应用技术,1,班”的班主任,他想查看到本班学生的基本情况和成绩信息,并能对本班学生基本情况进行修改,,SQL Server,数据库管理员将为他设置这些操作的权限。,55/204-216任务实施 王老师是“09计算机应用,56,/204-216,(1),使用,Windows,身份验证登录,创建数据库登录账号,s_TeacherWang,,在查询编辑器中输入如下,T-SQL,语句:,EXEC SP_ADDLOGIN s_TeacherWang, 123456,为了测试刚创建的新用户,可以再打开一个,SSMS,应用程序,使用,s_TeacherWang,登录。正常情况下,能够顺利登录,但登录成功后,发现该用户除了能够访问部分系统数据库外,其它数据库都无法访问。为了让用户,56/204-216 (1)使用Windows身份,57,/204-216,s_TeacherWang,能够访问,student,数据库,还需要为该登录账号创建对应的数据库用户。,(2),创建对应的数据库用户,d_TeacherWang,, 代码如下:,USE student,GO,EXEC SP_GRANTDBACCESS s_TeacherWang,d_TeacherWang,GO,57/204-216s_TeacherWang能够访问stu,58,/204-216,(3),创建两个视图,代码如下:,CREATE VIEW view_student_1,AS,SELECT student.*,FROM student,class,WHERE student.class_id = class.class_id,AND class.class_name = 09,计算机应用技术,1,班,CREATE VIEW view_score_1,AS,SELECT score.*,class.class_name,FROM student,class,score,58/204-216 (3)创建两个视图,代码如下,59,/204-216,WHERE student.class_id = class.class_id,AND score.s_id = student.s_id,AND class.class_name = 09,计算机应用技术,1,班,(4),分别为两个视图授予权限,代码如下:,GRANT UPDATE ON view_student_1 TO d_TeacherWang,GRANT SELECT ON view_score_1 TO d_TeacherWang,59/204-216WHERE student.class_,60,/204-216,4.2,取消数据库用户权限,4.2.1,拒绝权限,取消数据库用户的权限有两种方式:拒绝用户权限和撤销用户权限。,在授予了用户权限后,数据库管理员可以根据实际情况,在不撤销用户访问权限的情况下,拒绝用户访问数据库对象,并阻止用户或角色继承权限,该语句优先于其它授予的权利。,60/204-2164.2 取消数据库用户权限4.2.1,61,/204-216,(1),使用对象资源管理器拒绝权限。,【,例,4-7】,拒绝数据库用户,d_CeShi,对,student,表的修改权限。,1),在操作系统的“开始”菜单中打开,SSMS,应用程序,选择使用,Windows,身份验证登录。,2),展开数据库“,student”“,安全性” “用户”,找到用户“,d_CeShi”,,点击其右键,选择“属性”,打开“数据库用户”对话框,选择“安全对象”选项页,在“选择”行勾选“拒绝”复选框,点击“确定”按钮。如图,4-13,所示。,61/204-216 (1)使用对象资源管理器拒,62,/204-216,图,4-13 “,权限设置”对话框,62/204-216图4-13 “权限设置”对话框,63,/204-216,3),此时,使用“,d_CeShi”,登录账号登录,执行修改语句就会失败,如图,4-14,所示。,图,4-14 “,执行修改语句,”后果图,63/204-216 3)此时,使用“d_CeSh,64,/204-216,(2),使用,T-SQL,语句拒绝权限。拒绝对象权限的语法格式如下:,DENY,权限, . ON,对象, . TO,用户名,拒绝权限的语句和授权的语法非常类似,只是第一个关键字不同。,【,例,4-8】,拒绝用户“,zhang”,对,student,表的,update,修改、,insert,插入权限。,DENY UPDATE,INSERT ON student TO zhang,或者,DENY UPDATE,INSERT ON OBJECT:student TO zhang,64/204-216(2)使用T-SQL语句拒绝权限。拒,65,/204-216,4.2.2,撤销权限,通过撤销某种权限,停止以前授予或拒绝的权限,但不会显式的阻止用户或角色执行操作,用户或角色仍然能继承其它角色的授予权限。使用撤销类似于拒绝,但是撤销权限是删除已授予的权限,并不妨碍用户或角色从更高级别继承已授予的权限。,(1),使用对象资源管理器撤销权限。,【,例,4-9】,撤销数据库用户,d_CeShi,对,student,表的查询权限。,65/204-2164.2.2 撤销权限 通过撤,66,/204-216,1),在操作系统的“开始”菜单中打开,SSMS,应用程序,选择使用,Windows,身份验证登录。,2),展开数据库“,student”“,安全性” “用户”,找到用户“,d_CeShi”,,点击其右键,选择“属性”,打开“数据库用户”对话框,选择“安全对象”选项页,如图,4-15,所示。,3),去除“查询”行的“授予”复选框,点击“确定”按钮。此时,使用“,d_CeShi”,登录账号登录,执行,select,查询语句就会失败。,66/204-216 1)在操作系统的“开始”菜单中,67,/204-216,图,4-15 “,权限设置”对话框,67/204-216图4-15 “权限设置”对话框,68,/204-216,(2),使用,T-SQL,语句撤销权限。撤销对象权限的基本语法如下:,REVOKE,权限, . ON,对象, . TO,用户名,【,例,4-10】,撤销用户“,zhang”,对,student,表的,update,修改、,insert,插入权限。,REVOKE UPDATE,INSERT ON student TO zhang,或者,REVOKE UPDATE,INSERT ON OBJECT:student TO zhang,68/204-216 (2)使用T-SQL语句撤销权,69,/204-216,4.2.3,拒绝权限与撤销权限区别,REVOKE(,撤销,),和,DENY(,拒绝,),命令都可以取消某个权限,但它们是有本质的区别的。,REVOKE,取消以前授予或拒绝了的权限,而,DENY,拒绝授予主体权限,防止主体通过其组或角色成员身份继承权限。,如果用户激活一个应用程序角色,,DENY,对用户使用该应用程序角色访问的任何对象没有任何作用。虽然用户可能被拒绝访问当前数据库内的特定对象,但如果应用程序角色能够访问该对象,则当应用程序角色激活时,用户,69/204-2164.2.3 拒绝权限与撤销权限区别,70,/204-216,仍可以访问该对象。,使用,REVOKE,语句可从用户账户中删除拒绝的权限。安全账户不能访问删除的权限,除非将该权限授予了用户所在的组或角色。使用,GRANT,语句可删除拒绝的权限并将权限显式应用于安全账户。,例如,数据库用户账户,userA,拥有,employees,表的,SELECT,权限,同时又属于,db_datareader,数据库角色。,如果使用,REVOKE SELECT ON employees FROM userA,语句,仅仅是取消,70/204-216 仍可以访问该对象。,71,/204-216,了显式授予用户账户的,SELECT,权限;,userA,同样可以通过,db_datareader,角色获得读取,employees,表的权限;,而如果使用,DENY SELECT ON employees TO userA,语句,则可以彻底禁止,userA,读取,employees,表,因为在评估权限时,,DENY,优先于通过其他任何方式获取的权限。,71/204-216了显式授予用户账户的 SELECT 权限,72,/204-216,可以使用撤销命令,也可以使用拒绝命令来取消某学生对成绩表的修改权限,代码如下:,REVOKE UPDATE ON score TO 0904101101,或者,DENY UPDATE ON score TO 0904101101,任务实施,72/204-216 可以使用撤销命令,也可以使用拒,73,/204-216,4.3,使用角色管理用户,任务描述,江扬职业技术学院新学期开始,来了很多新生,每位新生需要具有查询成绩的权利,,SQL Server,数据库管理员需要快速给所有新生设置此权限。,任务分析,首先要给所有新生添加服务器登录账号,因为新生人数较多,逐个添加会相当麻烦,而且容易出错,可以考虑使用,游标,查询出所,73/204-2164.3 使用角色管理用户 任务描述,74,/204-216,有新生的学号,再遍历游标通过执行相应的系统存储过程,创建对应的账号,。创建好登录账号后,同样继续使用游标和系统存储过程为登录账号,创建数据库用户,。为了方便管理这些用户,还需要创建一个,角色,,然后将所有新生用户添加到角色中,统一给角色授予成绩表,(score),的查询权限。为了方便授权,每个学生都有整个成绩表的数据查看权限,不需考虑个别情况。假如“,09,计算机应用技术,1,班”为新生班级,完成该班级所有学生的权限分配任务的具体步骤如下:,74/204-216有新生的学号,再遍历游标通过执行相应的系,75,/204-216,(1),使用游标为所有新生创建服务器登录账号。,(2),为新生账号创建数据库用户。,(3),创建一个角色,将所有新生数据库用户添加到该角色中。,(4),给角色授权。,75/204-216(1)使用游标为所有新生创建服务器登,76,/204-216,4.3.1 SQL Server,角色,SQL Server,的角色是一种权限许可机制,如果数据库有很多用户,且这些用户的权限基本相同,那么单独授权给某个用户的话,过程重复,而且不便于集中管理。当权限发生变化时,管理员需要逐个修改每一个用户的权限,非常麻烦。,自,SQL Server 7,版本开始引入了新的概念,角色,从而替代以前版本中组的概念。和组一样,,SQL Server,管理者可以将某些用户设置为某一角色,这样只对角色进行权限设,76/204-2164.3.1 SQL Server角色,77,/204-216,置便可实现对该角色的所有用户权限的设置,大大减少了管理员的工作量。,SQL Server,管理员将操作数据库的权限赋予某个角色,再将数据库用户或登录账号设置为该角色,使得该用户或登录账号拥有相应的权限。当若干个用户都属于同一个角色时,它们就都继承了该角色拥有的权限。若角色的权限发生变化,这些相关用户的权限也会发生相应的变化。因此,,SQL Server,中通过角色可将用户分为不同的类型,对相同类型的用户进行统一管理,赋予相同的操作权限,从而方便管理人员集中管理用户的权限。,77/204-216 置便可实现对该角色的所有用户权限的设,78,/204-216,(1),服务器角色,在,SQL Server,中主要有两种角色类型:服务器角色与数据库角色。,服务器角色是指根据,SQL Server,的管理任务,以及这些任务相对的重要性等级来把具有,SQL Server,管理职能的用户划分成不同的用户组,每一组所具有管理,SQL Server,的权限已被预定义。服务器角色适用在服务器范围内,并且其权限不能被修改。例如,具有,sysadmin,角色的用户在,SQL Server,中可以执行任何管理性的工作,任何企图对其权限进行修改的操作都将会失败。,78/204-216(1)服务器角色 在SQL,79,/204-216,SQL Server,共有,8,种预定义的服务器角色,各种角色的具体含义见表,4-3,。,表,4-3,预定义的服务器角色,79/204-216 SQL Server 共有8 种预,80,/204-216,表,4-3,预定义的服务器角色(续一),80/204-216表4-3 预定义的服务器角色(续一),81,/204-216,数据库角色是为某一用户或一组用户授予不同级别的管理或访问数据以及数据库对象的权限,这些权限是数据库专有的,并且可以使一个用户具有属于同一数据库的多个角色。,SQL Server,提供了两种类型的数据库角色:预定义数据库角色和用户自定义数据库角色。,1),预定义数据库角色,预定义数据库角色是指这些角色所有具有的管理、访问数据库权限已被,SQL Server,定义、并且,SQL Server,管理者不能对其所,具有的权限进,(2),数据库角色,81/204-216 数据库角色是为某一用户或一组,82,/204-216,行任何修改。,SQL Server,中的每一个数据库中都有一组预定义的数据库角色,在数据库中使用预定义的数据库角色可以将不同级别的数据库管理工作分给不同的角色,从而很容易实现工作权限的传递。例如,如果准备让某一用户临时或长期具有创建和删除数据库对象,(,表、视图、存储过程,),的权限,那么只要把他设置为,db_ddladmin,数据库角色即可。,SQL Server,中预定义数据库角色的具体含义见表,4-4,。,82/204-216行任何修改。SQL Server 中的每,83,/204-216,表,4-4,预定义的数据库角色,83/204-216表4-4 预定义的数据库角色,84,/204-216,表,4-4,预定义的数据库角色 (续),84/204-216表4-4 预定义的数据库角色 (续),85,/204-216,需要说明的是,数据库中的每个用户都属于,public,数据库角色,而且这个数据库角色不能被删除。当尚未对某个用户授予安全对象的权限时,该用户将继承授予,public,角色的权限,由于所有数据库用户都自动成为,public,数据库角色的成员,因此给该数据库角色指派权限是需要格外谨慎。,2),用户自定义数据库角色。当我们打算为某些数据库用户设置相同的权限,但是这些权限不等同于预定义的数据库角色所具有的权限时,我们就可以定义新的数据库角色来满足这,85/204-216 需要说明的是,数据库中的每个用,86,/204-216,一要求,从而使这些用户能够在数据库中实现某一特定功能。用户自定义的数据库角色具有以下几个优点:,SQL Server,数据库角色可以包含,NT,用户组或用户。, 在同一数据库中用户可以具有多个不同的自定义角色,这种角色的组合是自由的,而不仅仅是,public,与其它一种角色的结合。, 角色可以进行嵌套,从而在数据库实现不同级别的安全性。,86/204-216一要求,从而使这些用户能够在数据库中实现,87,/204-216,用户定义的数据库角色有两种类型:标准角色和应用角色。,标准角色类似于,SQL Server 7,版本以前的用户组,它通过对用户权限等级的认定而将用户划分为不同的用户组,使用户总是相对于一个或多个角色,从而实现管理的安全性。所有预定义的数据库角色或,SQL Server,管理者自定义的某一角色,(,该角色具有管理数据库对象或数据库的某些权限,),都是标准角色。,应用角色是一种比较特殊的角色类型。当我们打算让某些用户只能通过特定的应用程序,87/204-216 用户定义的数据库角色有两种类,88,/204-216,间接地存取数据库中的数据,(,比如通过,SQL Server Query Analyzer,或,Microsoft Excel),而不是直接地存取数据库数据时,我们就应该考虑使用应用角色。当某一用户使用了应用角色时,他便放弃了已被赋予的所有数据库专有权限,他所拥有只是应用角色被设置的权限。通过应用角色,总能实现这样的目标;即以可控制方式来限定用户的语句或对象权限。,88/204-216间接地存取数据库中的数据(比如通过SQL,89,/204-216,(3),添加用户数据库角色,使用系统存储过程,sp_addrole,来添加用户数据库角色,语法格式如下:,SP_ADDROLE,角色名,所有者,说明:,1),角色名。新角色的名称,没有默认值,并且不能已经存在于当前数据库中。,2),所有者。新角色的所有者,默认值为,dbo,。,89/204-216(3)添加用户数据库角色 使,90,/204-216,(4),为角色添加成员,使用系统存储过程,sp_addrolemember,将数据库用户添加到数据库角色中去,使之成为角色的成员之一,语法格式如下:,SP_ADDROLEMEMBER,角色名,用户名,1),角色名。当前数据库中,SQL Server,角色的名称,没有默认值。,2),用户名。添加到角色的安全帐户,没有默认值,可以是所有有效的,SQL Server,用户、,SQL Server,角色或是所有已授权访问当前数据库的,Microsoft Windows NT,用户或组。,90/204-216(4)为角色添加成员 使用系,91,/204-216,(5),删除用户数据库角色,使用系统存储过程,sp_droprole,删除数据库角色,语法格式如下:,SP_DROPROLE,角色名,角色名:要从当前数据库中删除的数据库角色的名称,无默认值,必须已经存在于当前数据库中。角色必须不能包含用户才能被删除。,91/204-216(5)删除用户数据库角色使用系统存储,92,/204-216,4.3.2,游标,(1),游标的概念,游标,(Cursor),是处理数据的一种方法,为了查看或者处理结果集中的数据,游标提供了在结果集中一次以一行或者多行的方式前进或后退来浏览数据的能力。就本质而言,游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。我们也可以把游标当作一个指针,它可以指定结果集中的任何位置,然后允许用户对指定位置的数据进行处理。,92/204-2164.3.2 游标(1)游标的概念,93,/204-216,(2),游标的组成,游标包含两个部分:,游标结果集:定义该游标的,SELECT,语句返回的行的集合。,游标位置:指向这个结果集某一行的当前指针。,93/204-216(2)游标的组成 游标包含,94,/204-216,从游标定义可以得到游标的如下优点:,1),允许程序对由查询语句,select,返回的行集合中的每一行执行相同或不同的操作,而不是对整个行集合执行同一个操作。,2),提供对基于游标位置的表中的行进行删除和更新的能力。,3),游标实际上作为面向集合的数据库管理系统,(RDBMS),和面向行的程序设计之间的桥梁,使这两种处理方式通过游标沟通起来。,使用游标要遵循“声明游标、打开游标、读取数据、关闭游标、删除游标”的顺序。,94/204-216从游标定义可以得到游标的如下优点:,95,/204-216,(3),游标的生命周期,游标的生命周期包含五个阶段:,1,、声明游标:,DECLARE,2,、打开游标:,OPEN,3,、提取数据:,FETCH,4,、关闭游标:,CLOSE,5,、释放游标:,DEALLOCATE,95/204-216(3)游标的生命周期 游标,96,/204-216,(4),声明游标,其语法格式如下:,DECLARE,游标的名字,INSENSITIVE SCROLL CURSOR,FOR SELECT,语句,FOR READ ONLY | UPDATE OF,列名称,.n,说明:,1)INSENSITIVE,。表明,MS SQL SERVER,会将游标定义所选取出来的数据记录存放在一,96/204-216(4)声明游标其语法格式如下:,97,/204-216,个临时表内,(,建立在,tempdb,数据库下,),。对该游标的读取操作皆由临时表来应答。因此,对基本表的修改并不影响游标提取的数据,即游标不会随着基本表内容的改变而改变,同时也无法通过游标来更新基本表。如果不使用该保留字,那么对基本表的更新、删除都会反映到游标中。,2)SCROLL,。表明所有的提取操作,(,如,FIRST,、,LAST,、,PRIOR,、,NEXT,、,RELATIVE,、,ABSOLUTE),都可用。如果不使用该保留字,那么只能进行,NEXT,提取操作。由此可见,,SCROLL,极大地增加了提取数据的灵活性,可以随意读取结果集中的任一行数据记录,而不必关,97/204-216 个临时表内(建立在tempdb 数据库,98,/204-216,闭再重开游标。,3)SELECT,语句。是定义结果集的,SELECT,语句。应该注意的是,在游标中不能使用,COMPUTE,、,COMPUTE BY,、,FOR BROWSE,、,INTO,语句。,4)READ ONLY,。表明不允许游标内的数据被更新尽管在缺省状态下游标是允许更新的。,5)UPDATE OF,列名称,.n,。定义在游标中可被修改的列,如果不指出要更新的列,那么所有的列都将被更新。,98/204-216闭再重开游标。,99,/204-216,(5),打开游标,声明游标后,还必须先打开游标,才能从游标中读取数据。打开游标使用,open,语句,语法格式为:,OPEN,游标名,说明:,游标名:已创建的、未打开的游标,打开的游标不能再次打开,游标成功打开后,游标指针指向结果集的第一行之前。,99/204-216(5)打开游标 声明游标后,,100,/204-216,(6),提取游标,游标打开后,可以使用,fetch,语
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!