480 likes | 636 Views
第一讲 用户权限设置. 工作目标. 用户权限设置. 系统数据备份与恢复. 1. 2. 工作任务. 决策与计划. 资 讯. 实 施. 检查与评价. 基于工作过程化的学习情境. 信息收集 理论学习. 讨论方案 制定计划. 任务分解 过程实施. 质量评价 项目拓展. 资 讯. 分析情景任务单主要内容: 信息收集 介绍商品管理系统中的用户权限界面和系统备份和还原界面,引入系统数据库建立的工作流程。 理论学习 了解数据库的安全机制和措施
E N D
用户权限设置 系统数据备份与恢复 1 2 工作任务 决策与计划 资 讯 实 施 检查与评价 基于工作过程化的学习情境 信息收集 理论学习 讨论方案 制定计划 任务分解 过程实施 质量评价 项目拓展
资 讯 分析情景任务单主要内容: 信息收集 介绍商品管理系统中的用户权限界面和系统备份和还原界面,引入系统数据库建立的工作流程。 理论学习 了解数据库的安全机制和措施 分析数据库用户访问安全管理方法 分析当前数据库的数据的备份和还原方法
学习情境引入 任何一个管理系统中都有各种各样的用户,不同的用户在系统中的作用是不同的, 所以应该区别对待,这里就要求如何实现系统的不同用户权限设置? 同时,企业存放在服务器上的数据可能会因为种种原因出现丢失、损坏等问题。如何在系统中去防范和弥补这些问题。使数据能够尽可能的安全。
学习情境5 商品管理系统数据库维护 通过对商品管理系统开发的安全维护,通过两讲共6个课时进行讲解: 第一讲 用户权限设置 第二讲 数据备份与恢复机制 第三讲 数据导入和导出
资 讯 讨论: 讨论系统中用户的分类:例如 普通客户、销售人员、仓库管理人员等。 这些人员在系统中所起到的作用不同,为了保证数据库中数据的安全性。因此,需要对系统中的用户进行权限划分。 返回目录
资 讯——系统安全性能分析 为了保证数据库中数据的安全可靠和正确有效,DBMS必须提供一套有效的数据库安全保护措施,防止数据意外丢失和不一致数据的产生,以及当数据库遭受破坏后能迅速地恢复正常。DBMS对数据库的安全保护功能是通过四方面实现的。分别如下: 安全性控制 完整性控制 并发性控制 数据库恢复
资 讯——系统安全性能分析 数据库的安全性是指保护数据库,防止因用户非法使用数据库造成数据泄露、更改或破坏。非法使用是指不具有数据操作权的用户进行了越权的数据操作。DBMS通过种种防范措施以防止用户越权使用数据库,其安全措施是否有效是衡量数据库系统优劣的重要性能指标。 数据库安全控制的一般方法 教师引导,分析讨论。
安全管理结构 安全管理模型 服务器安全性:建立在对登录用户进行身份验证的基础上 数据库安全性:建立在对数据库用户进权限认证的基础上 安全管理概述
基于为主体分配安全对象的访问权限机制 主体:Windows级主体、服务器级主体、数据库级主体 安全对象:服务器、数据库和架构3种范围的安全对象
SQL Server2005的安全机制主要包括以下五个方面 客户机的安全机制:用户必须能够登录到客户机,然后才能使用SQL Server应用系统 网络传输的安全机制:一般采用数据加密和解密来实现,但速度慢,一般不采用 服务器的安全机制:必须在服务器有个账号和密码 数据库的安全机制:任何登录到服务器的账号对应着一个默认的工作数据库 数据对象的安全机制:用户通过前面四道防线,才能访问数据库中的数据对象
决策与计划 确定任务内容步骤,制定初步工作计划: 1.确定用户权限设置方案 理解SQL Server 2005安全机制和身份验证模式 掌握服务器登录帐号的创建和删除 掌握数据库用户的创建和删除 理解角色概念,掌握服务器角色和数据库角色的管理 掌握权限的授予、拒绝和废除 2.确定系统备份和还原的方法和步骤 掌握数据库备份的原理及备份机制 掌握数据库恢复的原理及恢复机制
决策与计划——确定用户权限设置方案 教师引导 SQL Server2005是通过设置不同级别的用户和分配不同的权限的方法来实现数据库的安全性的。用户如果要访问SQL Server数据库中的数据,必须提供有效的认证信息。数据库引擎必须经过3个认证过程: 登录身份验证(操作系统级的验证) 用户帐号验证(SQL Server级的验证) 操作许可验证(数据库级的验证)
分组讨论 数据库认证的三个过程 教师引导 服务器安全管理、数据库安全管理和数据库对象的访问权限管理。
决策与计划——确定用户权限设置方案 第一步:账户管理 SQL Server账户包含两种:登录者和数据库用户 登录者是面对整个SQL Server管理系统的,某位用户必须使用特定的登录账户才能连接到SQL Server,但连接上并不说明就有访问数据库的权力。 数据库用户则针对SQL Server管理系统中的某个数据库而言,当某位用户用合法登录账户连接到SQL Server后,他还必须在所访问的数据中创建数据库用户。
第二步:角色设置与管理 在SQL Server2005中提供了“角色”这个概念,角色实际是授予了一定权限的用户组。SQL server管理者可以将某些用户设置为某一角色,这样只需对角色进行权限设置便可实现对隶属于该角色的所有用户的权限设置,大大减少了管理员的工作量。 SQL Server2005中有三类角色: 服务器角色、数据库用户角色、应用程序角色。
服务器角色:是执行服务器级管理操作的权限的集合,作用整个服务器,用户不能创建服务器角色:是执行服务器级管理操作的权限的集合,作用整个服务器,用户不能创建 用户添加到一个服务器角色时,该用户也将获得与角色相关联的权限。
数据库角色:具有数据库级别管理权力,有固定数据库角色和用户自定义数据库角色。数据库角色:具有数据库级别管理权力,有固定数据库角色和用户自定义数据库角色。
决策与计划——确定用户权限设置方案 第三步:权限管理 权限用来指定授权用户可以使用的数据库对象和这些授权用户可以对这些数据库对象执行的操作。用户在登录到SQL Server之后,其用户帐号所归属的Windwos组或角色所被赋予的权限决定了该用户能够对哪些数据库对象执行哪种操作以及能够访问、修改哪些数据。 在SQL Server中包括三种类型的权限: 语句权限 对象权限 预定义权限
实 施——身份验证模式设置 • 第一级安全机制 对所有连接服务器的登录用户进行身份验证,并允许创建Windows登录用户和SQL Server用户进行服务器访问。 管理: 登录用户管理 固定服务器角色管理 身份验证模式 管理登录用户 管理固定服务器角色
实 施——身份验证模式设置 SQL Server 2005的身份验证 Windows身份验证模式:也称Windows验证。此模式下,SQL Server直接利用Windows 2000操作系统上创建的登录者来登录。 混合模式:此模式下,用户能使用Windows身份验证或SQL Server 2005的身份验证进行连接。 • 选择身份验证模式: • (1)安装SQL Server时 • (2)新建SQL Server注册时 • (3)编辑SQL Server注册属性时 • (4)配置服务器属性的安全性选项时
将当前SQL Server实例的验证模式由“windows身份验证”改为“SQL Server和Windows身份验证” 模式。 步骤1:启动SQL Server Management Studio,在【对象资源管理器】中右键单击服务器,选择【属性】,打开【服务器属性】对话框,如图所示。
步骤2:选择【安全性】选项,更改【服务器的身份验证】为“SQL Server和Windows验证模式”,单击【确定】按扭,完成验证模式的设置。
实 施——登录帐号 登录名就是可以访问SQL Server数据库系统的账户。 1.利用SQL Server Management Studio创建登录名 (1)启动SQL Server Management Studio工具后,在“对象资源管理器”下,右击“安全性”下的“登录名”节点,在弹出的快捷菜单中选择“新建登录名”命令。 (2)在“登录名-新建”界面上,设置登录名(te_login)、身份验证模式(SQL Server身份验证)、密码(123456)、默认数据库(sales)和语言的类型等,如图所示。
管理登录名 利用SQL Server Management Studio创建登录名 右击登录名te_login,在弹出的快捷菜单中,选择“编写登录脚本为:”|“CREATE到”|“新查询编辑器窗口”命令,系统将创建登录名的过程以脚本形式保存下来。由此可知利用Transact-SQL语句创建登录名的方法。 脚本中的主要代码如下: CREATE LOGIN [te_login] WITH PASSWORD=N'123456', DEFAULT_DATABASE=[teaching], DEFAULT_LANGUAGE=[简体中文], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF GO EXEC sys.sp_addsrvrolemember @loginame = N'te_login', @rolename = N'sysadmin' GO ALTER LOGIN [te_login] DISABLE
利用系统过程管理登录名 利用master数据库下的下列系统存储过程sp_addlogin、sp_droplogin、 sp_password也可以用于管理SQL Server的登录名。 (1)sp_addlogin 。系统过程sp_addlogin可以用于创建SQL Server登录名,用户可以通过该登录访问SQL Server系统,其语法过程如下: sp_addlogin ‘login_name’ [,’passwd’[,’database’ [,language’]]] 利用系统过程sp_addlogin向“员工管理”数据库创建1个新登录。 Exec sp_addlogin ‘rale', 'aabbcc', ‘sales' GO
利用系统过程管理登录名 (2)sp_droplogin。利用系统存储过程sp_droplogin可以删除一个现有的SQL Server登录名,sp_droplogin系统过程可以通过系统表syslogins中删除相应的行来达到删除登录名的目的。 (3)sp_password。系统存储过程sp_password为SQL Server登录创建密码,或替换现有的口令密码。 利用该过程用户可以随时修改自己的口令密码,系统管理员通过sp_password可以更改任何口令密码。 • sp_password 'aabbcc', '112233', 'hanry'
实 施——管理固定服务器角色 • 服务器角色:是管理与维服务器安全对象的用户组。 • 8个固定服务器角色:sysadmin 【例】为固定服务器角色dbcreator,添加成员new_login1。(SSMS) 【例】将登录new_login3添加到固定服务器角色sysadmin中。(T-SQL)
实 施——角色设置 使用SSMS,将登录名“rale” 加入到服务器角色 “securityadmin”中。 启动SQL Server Management Studio,在【对象资源管理器】展开【安全性】→【服务器角色】节点。 右键单击【securityadmin】,选择【属性】。 打开【服务器角色属性- securityadmin】对话框。单击【添加】按钮,打开【选择登录名】对话框,从中选择要添加到securityadmin服务器角色的登录名,单击【确定】即可。 如果要删除该角色中的登录名,只要在【角色成员】窗口中选择相应的登录名,然后单击【删除】按钮即可。
将数据库用户rale添加到sales数据库的固定数据库角色db-owner中。 启动SQL Server Management Studio,在【对象资源管理器】中依次展开【数据库】节点、【sales】节点、【安全性】节点、【角色】节点、【数据库角色】节点。 右键单击【db-owner】,选择【属性】,打开【数据库角色属性-db-owner】对话框。 单击【添加】按钮,打开【选择数据库用户或角色】对话框,选择【浏览】按钮,选择指定登录名“rales”。 单击【确定】按钮,将数据库用户“rales”添加到“db-owner”数据库角色中。
第二级安全机制 将需要访问数据库的登录名映射为数据库用户,使其具有访问数据库及其对象的合法权限。 管理: 数据库用户 数据库角色 管理数据库用户 管理数据库角色 管理架构
实 施——管理数据库用户 登录用户与数据库用户的对应关系: 一个登录用户可以映射到不同的数据库,在每个数据库中映射为一个数据库用户。 一个数据库用户(除特殊用户guest)必须与一个登录用户相关联。 系统允许登录用户和数据库用户使用相同的名称。 默认数据库用户: dbo、guest、INFORMATION_SCHEMA和sys
数据库用户是访问某个特定数据库的主体。 利用SQL Server Management Studio创建数据库用户 (1)在“对象资源管理器”下,展开数据库sale,右击“安全性”|“用户”,在弹出的快捷菜单中选择“新建”|“用户”命令。 (2)在弹出的“数据库用户-新建” 窗体中的“常规”选项卡中,输入用 户名hans、选择登录名te_login, 并选择架构。也可以指定“默认架构”项。
2.利用Transact-SQL命令创建数据库用户 向当前数据库添加用户的Transact-SQL 语法如下: CREATE USER user_name[{ { FOR | FROM } { LOGIN login_name | CERTIFICATE cert_name | ASYMMETRIC KEY asym_key_name } | WITHOUT LOGIN ] [WITH DEFAULT_SCHEMA = schema_name ] 在sale数据库中创建用户Abol CREATE LOGIN Abol WITH PASSWORD = '327Shy'; USE sale; CREATE USER Abol; GO
管理数据库角色 数据库角色是数据库用户构成的组 包括: 固定数据库角色(10个) 用户定义数据库角色 2类管理操作: 管理用户定义数据库角色 CREATE ROLE ALTER ROLE DROP ROLE 管理数据库角色的成员
权限管理: 指将安全对象的权限对相关主体进行授予、拒绝、取消操作。 安全对象的权限 使用SQL Server Management Studio管理权限 使用T-SQL管理权限 权限管理
权限是SQL Server安全性的最后一个级别。权限可以明确用户能够使用哪些数据库对象,并对它们进行何种操作。用户在数据库内的权限取决于用户账号的权限和该用户所属的角色的权限。 在SQL Server中,权限分为语句、对象和暗示性3种类型: • 语句权限。在数据库中创建数据库或其他项目的活动时所受到的权限控制。 • 对象权限。使用数据或执行程序的活动受到的权限控制。 • 暗示性权限。执行只有固定角色的成员或数据库对象的所有者才能够秩序的某些活动权限,不能授予、撤消或拒绝。
语句权限 1.利用SQL Server Management Studio管理语句权限 在“对象资源管理器”下,右击“数据库”|“sale”,在弹出的菜单中选择“属性”,然后选择“权限”选项卡,可以查看、设置角色或用户的语句权限。 • “授予”表示指权限分配给用户或角色。 • “具有授予权限”是指用户或角色获得的权限可以再授予其他用户或角色。 • “拒绝”将覆盖表级对列级权限以外的所有层次的权限设置 • 如果未进行任何设置,将从其他组成员身份中继承权限。
语句权限 2.利用Transact-SQL语句管理语句权限 数据控制语言(DCL)是用来设置或更改数据库用户或角色权限的语句,包括GRANT、DENY和REVOKE等语句。3种语句的功能如
语句权限 在数据库sale中,为数据库用户hans和Abol设置DELETE、INSERT和SELECT语句权限。 程序代码如下: use teaching GO --为hans和Abol设置带有“具有授予权限”DELETE ,UPDATE语句的权限 --WITH ADMIN OPTION为可选项,允许被授权的用户将指定的权限再授予其他用户或角色。 GRANT DELETE ,UPDATE TO hans,Abol WITH GRANT OPTION GO
对象权限 对象权限就是指使用数据或执行程序的活动时受到的权限控制。对象权限表示对特定的数据库对象(表、视图、字段和存储过程)的操作权限,它决定了能对表、视图等数据库对象执行的操作。 1.利用SQL Server Management Studio管理对象权限 在SQL Server Management Studio中,为查看现有的对象权限,以及“授予”、“具有授予权限”、“允许”或“拒绝”语句权限提供了图形界面。
对象权限 1.利用SQL Server Management Studio管理对象权限 在“对象资源管理器”下,右击“数据库”|rale|“表”|员工信息,在弹出的菜单中选择“属性”,然后选择“权限”选项卡,可以查看、设置表的对象权限。 如果选择一个操作语句,然后单击“列权限”按钮,还可以设置表中某些列的权限。
对象权限 2.利用Transact-SQL语句管理对象权限 管理对象权限的Transact-SQL语句包括GRANT、DENY和REVOKE等语句。 DENY UPDATE ON dbo.st_score (courseno) TO Abol GO GRANT UPDATE ON dbo.st_score (final) TO Abol WITH GRANT OPTION AS dbo GO --查看表st_score的所有对象权限 EXECUTE sp_helprotect 'st_score' GO
总 结 安全管理结构分为两个层次:服务器安全管理和数据库安全管理。 T-SQL使用GRANT、DENY、REVOKE语句为主体授予、拒绝或取消特定安全对象的访问权限。