第9章-数据库的安全性(数据库原理与应用)课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第9章-数据库的安全性(数据库原理与应用)课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 安全性 原理 应用 课件
- 资源描述:
-
1、1主讲教师 毛一梅2010.012问题的提出数据库的一大特点是数据可以共享数据共享必然带来数据库的安全性问题数据库系统中的数据共享不能是无条件的共享例:军事秘密、国家机密、新产品实验数据、市场需求分析、市场营销策略、销售计划、客户档案、医疗档案、银行储蓄数据数据库安全性数据库安全性3一、计算机安全性机制n数据安全性是指保护数据库以防止非法使用造成的数据泄露、更改或破坏。安全性问题不是数据库系统所独有的,所有计算机系统都有这个问题。只是在数据库系统中大量数据集中存放,且为许多最终用户直接共享,因而其安全性问题尤为突出。4计算机系统中,安全措施是一级一级层层设置计算机系统的安全模型 5n在安全模型
2、中,用户标识与鉴定是系统提供的最外层安全保护措施。只有在DBMS成功注册了的人员才是该数据库的用户,才可以访问数据库。n用户标识与鉴定解决了检查用户是否合法的问题,但是合法用户的存取权限不尽相同。数据安全性的核心问题是DBMS的存取控制机制,确保进入系统的用户只能进行合法的操作。6数据库中的用户按其操作权限可分为三类:n数据库系统管理员:在数据库中具有全部的权限,当用户以系统管理员身份登录进行操作时,系统不对其权限进行检查。n数据库对象拥有者:创建数据库对象的用户即为数据库对象的拥有者。数据库对象拥有者对其所拥有的对象具有一切权限。n普通用户:只具有授予用户的对数据库中数据的增加、删除、更改和
3、查询的权限。n操作系统一级也有自己的保护措施。数据最后还可以以加密的形式存储到数据库中。7二、SQL Server 2005的安全策略nSQL Server 2005提供的安全策略可以划分为以下4个等级:客户机操作系统的安全性SQL Server的登录安全性数据库的安全性数据库对象的安全性8SQL Server认证模式n如果用户要访问SQL Server时,需要经过两个认证过程:一是身份验证,只验证用户是否有连接到SQL Server数据库服务器的资格;二是权限验证,检验用户是否有对指定数据库的访问权,并且当用户操作数据库中的数据或对象时验证用户是否有相应的操作权限。9两种验证模式:n在验证阶
4、段,系统对登录用户进行验证。nSQL Server和Windows是结合在一起的,因此,产生了两种验证模式:Windows身份验证模式和混合验证模式。10Windows身份验证模式n在Windows身份验证模式下,用户必须首先登录到Windows中,然后再登录到SQL Server。而且用户登录到SQL Server时,只需选择Windows身份验证模式,而无需再提供登录帐号和密码,系统会从用户登录到Windows时提供的用户名和密码中查找当前用户的登录信息,以判断该用户是否是SQL Server的合法用户。11注意:注意:如果用户在登录SQL Server时未给出用户登录名,则SQL Ser
5、ver将使用Windows验证模式。如果SQL Server被设置为Windows验证模式,则用户在登录时即使输入一个具体的登录名时,SQL Server也将忽略该登录名。12混合验证模式。n混合验证模式表示SQL Server接受Windows授权用户和SQL Server授权用户。在该认证模式下,用户在连接SQL Server时必须提供登录名和密码,然后系统确定用户帐号在Winwods操作系统下是否可信,对于可信连接用户,系统直接采用Windows身份验证机制,否则采用SQL Server验证机制。nSQL Server验证机制是系统自己执行验证处理,它通过与系统表syslogins中信息
6、比较,检查输入的登录帐号是否已存在且密码是否正确。如果匹配,则表明登录成功,否则身份验证失败,用户将收到错误信息。13注意注意nWindows操作系统的用户既可以使用Windows认证,也可以使用SQL Server验证。n若不是Windows操作系统的用户只能使用SQL Server验证。14验证模式的设置验证模式的设置 n步骤步骤1:打开“SQL Server Management Studio”集成环境,在“对象资源管理器”窗口中用鼠标右击服务器,在弹出的快捷菜单中选择【属性】选项,打开【服务器属性】对话框;n步骤步骤2:在【服务器属性】对话框中,选择【安全性】选项。1516三、登录帐号
7、和用户帐号的管理n登录服务器的登录帐号,也称登录名;n操作数据库的用户帐号。n登录帐号是指能登录到SQL Server服务器的帐号,属于服务器的层面,本身并不能让用户访问服务器中的数据库。n如果登录服务器的用户要访问数据库时必须拥有用户帐号。17n在安装SQL Server后,系统默认创建两个登录帐号,即sa帐号和服务器帐号。n其中sa是超级管理员帐号,允许SQL Server的系统管理员登录。n尽管如此,在实际的使用过程中还需要用户根据应用需要对登录帐户进行必要的管理。181、创建登录帐号n(1)利用“对象资源管理器”创建登录帐号n(2)利用T-SQL语句创建登录帐号19(1)利用“对象资源
8、管理器”创建登录帐号n步骤步骤1:启动“Microsoft SQL Server Management Studio”集成环境,在“对象资源管理器”中,逐级展开“服务器”【安全性】【登录名】选项;n步骤步骤2:右击【登录名】选项,在弹出的快捷菜单中选择【新建登录名】选项,打开【登录名新建】对话框。2021n步骤步骤3:在【登录名】右侧的文本框中输入要创建的登录帐号(如stu-_admin),若选择“Windows身份验证”,可以通过单击右侧的【搜索】按钮来查找并添加Windows操作系统中的用户名称;若选择“SQL Server身份验证”,则需在【密码】和【确认密码】文本框中输入登录时采用的密
9、码。n步骤步骤4:在【默认数据库】下拉列表中选择该登录帐号对应的默认使用的数据库,例如选择“TeachingData”;在【默认语言】下拉列表中选择登录后使用的默认语言,一般采用默认值。然后,单击【确定】按钮即可新建一个登录帐号。22(2)利用T-SQL语句创建登录帐号CREATE LOGIN login_name WITH PASSWORD=password,|FROM WINDOWS WITH ,23参数说明nlogin_name:指定创建的登录帐号。如果从Windows域帐户映射login_name,则 login_name 必须用方括号 括起来。npassword:仅适用于SQL Se
10、rver登录帐号,指定正在创建的登录帐号的密码。nsid:仅适用于 SQL Server 登录帐号。指定新 SQL Server 登录帐号的 GUID。如果未选择此选项,则 SQL Server 将自动指派 GUID。ndatabase:指定将指派给登录帐号的默认数据库,若此项缺省,默认数据库将设置为 master。nlanguage:指定将指派给登录帐号的默认语言。若此选项缺省,则默认语言将设置为服务器的当前默认语言。nWINDOWS:指定将登录帐号映射到 Windows 登录名。24例1,n在SQL Server服务器上,创建stu_admin登录帐号,密码为123的,默认数据库为teac
11、hingData。CREATE LOGIN stu_admin WITH PASSWORD=123,DEFAULT_DATABASE=TeachingData25例2,从 Windows 域帐户创建 NT AUTHORITYLOCAL SERVICE 登录名。CREATE LOGIN NT AUTHORITYLOCAL SERVICE FROM WINDOWS;26注意注意n虽然SQL Server 2005也提供了系统存储过程sp_grantlogin和sp_addlogin创建登录帐号,但由于后续的 SQL Server版本将取消此项功能。因此,应避免在新的开发工作中使用该功能。272、创
12、建数据库的用户帐号创建数据库的用户帐号 n(1)利用“对象资源管理器”创建用户帐号n(2)利用T-SQL语句创建数据库的用户帐号28(1)利用“对象资源管理器”创建用户帐号n现以在“TeachingData”数据库中,创建一个stu-_admin登录帐号下的“U1”用户,具体操作步骤为:n步骤步骤1:启动“Microsoft SQL Server Management Studio”管理器,在“对象资源管理器”窗口逐级展开“服务器”【数据库】“TeachingData”【安全性】【用户】。n步骤步骤2:在【用户】项右击鼠标,在弹出的快捷菜单中选择【新建用户】选项,打开【数据库用户】对话框,29
13、30n步骤步骤3:在【用户名】右侧文本框中输入新建的用户名U1;在【登录名】文本框中直接输入已存在的登录帐号stu-_admin,或单击【登录名】文本框右侧的【】按钮,选择登录帐号stu-_admin。n步骤步骤4:在【此用户拥有的框架】列表框中选择拥有的框架;在【数据库角色成员身份】列表框中选择新建用户应该属于的数据库成员角色。n步骤步骤5:单击【确定】按钮即可完成用户帐号的创建。31(2)利用T-SQL语句创建数据库的用户帐号n向当前数据库添加新的用户帐号,也可使用CREATE USER语句来实现。其语法格式为:CREATE USER user_name FOR|FROM LOGIN lo
14、gin_name|WITHOUT LOGIN 32参数说明nuser_name:指定在此数据库中用于识别该用户的名称。nlogin_name:指定要创建数据库用户帐号的 SQL Server 登录帐号。login_name 必须是服务器中有效的登录帐号。nWITHOUT LOGIN:指定不应将用户映射到现有登录帐号。33例3,n在TeachingData数据库中为登录帐号stu_admin创建用户帐号,并取名为U1。USE TeachingDataCREATE USER U1 FOR LOGIN stu_admin34注意:注意:(1)如果省略 FOR LOGIN,则新的数据库用户将被映射到同
15、名的 SQL Server 登录名。(2)不能使用 CREATE USER 创建 guest 用户,因为每个数据库中均已存在 guest 用户。可以通过授予guest 用户 CONNECT 权限来启用该用户。353、管理登录帐号和用户帐号利用“对象资源管理器”管理利用T-SQL语句管理 36(1)利用“对象资源管理器”管理登录帐户n查看:启动“Microsoft SQL Server Management Studio”管理器,在“对象资源管理器”窗口逐级展开“服务器”【安全性】【登录名】。n修改属性:在对象资源管理器中右击需要修改帐号属性的登录名。n删除:右击登录名,选择【删除】命令。37(
16、2)利用“对象资源管理器”查看和删除用户帐号n查看:查看:启动“Microsoft SQL Server Management Studio”管理器,在“对象资源管理器”窗口逐级展开“服务器”【数据库】【用户数据库】(如TeachingData)【安全性】【用户】。即可看到当前数据库的所有用户帐号。n步骤步骤2:右击欲删除的用户名,在弹出的快捷菜单中选择【删除】选项,在打开的【删除对象】对话框中单击【确定】按钮即可。38(3)利用T-SQL语句管理利用T-SQL语句查看服务器的登录帐号n使用sp_helplogins系统存储过程可以查看指定的登录帐号信息和相关用户帐号的信息。其语法格式为:sp
17、_helplogins login_namen参数说明:login_name:指定要查看的登录名。login_name的数据类型为 sysname,默认值为 NULL。如果指定该参数,则 login_name必须存在。如果未指定 login,则返回当前数据库的所有登录帐号的信息。39说明:说明:n在该语句的结果集中将返回两个报告,第一个报告包含指定的登录帐号信息,第二个报告包含与登录帐号相关联的用户帐号信息。40利用T-SQL语句修改服务器的登录帐号格式:ALTER LOGIN login_name ENABLE|DISABLE|WITH ,.41参数说明nlogin_name:指定正在更改的
18、 SQL Server 登录帐号。nENABLE|DISABLE:启用或禁用此登录帐号。npassword:指定正在更改的登录帐号的密码,仅适用于SQL Server登录帐号。noldpassword:要指派新密码的登录帐号的当前密码,仅适用于SQL Server登录帐号。ndatabase:指定将指派给登录帐号的默认数据库。nlanguage:指定将指派给登录帐号的默认语言。nlogin_name:正在重命名的登录帐号的新名称。SQL Server 登录的新名称不能包含反斜杠字符()。42例4n禁用stu_admin登录帐号。nALTER LOGIN stu_admin DISABLE43例
19、5n对stu_admin登录帐号重新启用后,将帐号的登录密码更改为111。ALTER LOGIN stu_admin ENABLEALTER LOGIN stu_admin WITH PASSWORD=11144例6,将stu_admin登录帐号称更改为user1。ALTER LOGIN stu_admin WITH NAME=user145利用T-SQL语句删除服务器的登录帐号n语法格式:DROP LOGIN login_namen其中,login_name 是指定要删除的登录帐号。46例7,n将user1登录帐号删除。DROP LOGIN user1n注意:注意:不能删除正在使用的登录名,
20、也不能删除拥有任何安全对象、服务器级别对象或 SQL 代理作业的登录名。47利用T-SQL语句查看数据库的用户帐号n使用sp_helpuser系统存储过程可以查看有关当前数据库中的用户帐号信息。其语法格式为:sp_helpuser security_account n参数说明:security_account:当前数据库中数据库用户帐号或数据库角色的名称。security_account 必须存在于当前数据库中。security_account 的数据类型为 sysname,默认值为 NULL。如果未指定 security_account,则 sp_helpuser返回当前数据库主体的信息。4
21、8利用T-SQL语句修改数据库的用户帐号n语法格式:ALTER USER user_name WITH ,.n n参数说明:user_name:指定在此数据库中用于识别该用户的名称。new_user_name:指定此用户的新名称,且不存在于在当前数据库。schema_name:指定服务器在解析此用户的对象名称时将搜索的第一个架构。49例8,n将数据库用户U1的名称更改为user_stu。ALTER USER U1 WITH NAME=user_stu50利用T-SQL语句删除数据库的用户帐号n语法格式:DROP USER user_name51四、权限管理四、权限管理n当用户成为指定数据库中的
22、合法用户之后,除了具有一些系统表的查询权之外,对数据库中的数据和对象并不具有任何操作权限,因此,接下来就需要为数据库中的用户帐号授予数据库数据及对象的操作权限。52(一)(一)SQL Server权限分类权限分类n对象权限n语句权限531、对象权限n对象权限是针对表、视图和存储过程而言的,是指用户对数据库对象中的数据能够执行哪些操作。n例如当用户U1要成功修改StuInfo表中的数据,前提是用户U1已获得StuInfo表的UPDATE权限。54对象权限表权限描述SELECT可以查询表、视图中的数据INSERT可以向表中插入行UPDATE可以在表中修改表中的数据DELETE可以从表中删除行EXE
展开阅读全文