【文档说明】数据库系统概论第4章数据库安全-课件.ppt,共(54)页,1021.000 KB,由小橙橙上传
转载请保留链接:https://www.ichengzhen.cn/view-92469.html
以下为本文档部分文字说明:
1第4章数据库安全4.1计算机安全性概论4.2数据库安全性控制29.1计算机安全性概论数据库安全指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏.1.计算机系统的三类安全性问题.计算机系统安全性:指为计算机系统建立和采取的各种安全保护措施,以保护计算机系统中的硬件、软件及数
据,防止其因偶然或恶意的原因使系统遭到破坏,数据遭到更改或泄露等.计算机系统安全性的分类:(1)技术安全(2)管理安全(3)政策法律类安全32.可信计算机系统评测标准从四个方面来评测计算机系统的安全性:(1)安全策略(2)责任(3)保证(4)文档计算机系统的安全性等级:D级:最小保护
C1级:自主安全保护C2级:受控的存取保护B1级:标记安全保护B2级:结构化保护B3级:安全域A1级:验证设计49.2数据库安全性控制用户DBMSOSDB用户标识和鉴别存取控制操作系统安全保护数据密码存储图9.1计算机系统的安全模型9.2.1用户标识与鉴别用户标识与鉴别:是指由系统提供一定的方式
让用户标识自己的名字或身份.每次用户进入系统时,由系统进行核对,通过鉴定后才提供使用权.5常用的用户标识与鉴定方法:(1)用户名(2)口令(3)函数鉴定例:用户A与系统约定的函数为f(x)=x*x+2;则某次上机,若系统提
供的随机数为3,则A经计算后回答11,则可进入系统,否则拒绝进入系统.9.2.2存取控制存取控制机制:确保只授权给有资格的用户访问数据库的权限,同时令所有未被授权的人员无法接近数据.6存取控制机制包括两部分:(1)定义用户权限,并将
用户权限登记到数据字典中,形成安全规则.(2)合法权限检查,利用数据字典中的安全规则对用户的请求进行检查.两种存取控制机制:自主存取控制方法(DAC)强制存取控制方法(MAC)79.2.3自主存取控制方法(DAC)自主存取控制:用户对
于不同的数据对象有不同的存取权限,不同的用户对同一对象也有不同的权限,而且用户还可以将其拥有的存取权限转授给其他用户.SQL的自主存取控制GrantRevoke8用户权限:结构(数据库)数据(表或视图)数据(属性列)CreatedatabaseSelectInsert
,update,deleteAllprivilegesSelectInsert,update,deleteAllprivileges结构(表、视图)Createtable,altertableCreate
viewCreateindex91.授权Grant的语句格式:grant<权限>......[on<对象类型><对象名>]to<用户>......[withgrantoption];例子:把查询Student表的权限授给用户U1.Grantselectontablestudentt
ou1;10例子:说明以下语句完成的功能.(1)grantallpriviligesontablestudent,coursetou2,u3;(2)grantselectontablesctopublic;(3)grantupdate(sno),selectontab
lesctou4;(4)grantinsertontablesctou5;withgrantoption(5)grantcreatetabondatabaseS_Ctou6;112.收回权限revoke的语句格式:revoke<权限>......[on<对象类型>
<对象名>]from<用户>......;例子:把U4修改学生学号的权限收回.Revokeupdate(sno)ontablestudentfromu4;12例子:说明以下语句完成的功能.(1)revokeselectontablescfrompublic;(2
)revokeinsertontablescfromu5cascade;133.创建用户Sp_addlogin‘用户名称’,‘用户密码’sp_addsrvrolemember'用户名称','dbcreator‘sp_grantdbaccess‘用户名称’
sp_addrolemember‘数据库角色名称’,‘用户名称’例子:(1)Sp_addlogin'zgf','123'(2)sp_addsrvrolemember'zgf',’dbcreator‘(3)在当前数据库(spj)中执行:sp
_grantdbaccess'zgf',’zgfspj’sp_addrolemember‘db_owner’,'zgfspj‘sp_droprolemember‘db_owner’,'zgfspj‘grantcreatetab
letozgfspjgrantselectonspjtozgfspjrevokeselectonspjtozgfspjgrantcreateviewtopublic149.2.4强制存取控制方法(MAC)强制存取控制:每一个数据对象被标以一定的密级,每一
个用户也被授予某一个级别的许可证,对于任意一个对象,只有具有合法许可证的用户才可以存取.主体:系统中的活动实体,包括用户和代表用户的各进程.客体:系统中的被动实体,包括文件、基本表、索引、视图.主体和客体的敏感度标记:绝密、机密、可信、公开
等.主体的敏感度标记称为许可证级别.客体的敏感度标记称为密级.15强制存取控制方法(MAC):要求许可证级别为Label的主体对任何客体存取时必须遵守以下规则:(1)仅当主体的许可证级别大于或等于客体的密级时,该主体才能读取相应的客体.(2)仅当主
体的许可证级别等于客体的密级时,该主体才能写相应的客体.例子:主体A(机密)客体B(机密)客体C(绝密)客体D(公开)R/WR16DAC+MAC安全检查示意图:SQL语法分析&语义检查DAC检查MAC检查安全检查继续检查用户权限检查用户的许可证级别和
数据的密级179.2.5视图机制视图机制:为不同的用户定义不同的视图,把数据对象限制在一定的范围内,通过视图机制把要保密的数据对无权存取的用户隐藏起来,对数据提供一定程度的安全保护.例子:李勇把查询Student中计算机系学生的权限授予王平.(1)建立
计算机系学生的视图CS-Student.createviewCS-Studentasselect*fromstudentwhereSdept=‘CS’;(2)授限grantselectonCS-Studentto王平;189.2.6审计审计:把
用户对数据库的所有操作自动记录下来放入审计日志中,DBA可以利用审计跟踪的信息,重现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间和内容.9.2.7数据加密数据加密:根据一定的算法将原始数据变换为不可直接识别的格式,从而使得不知道解密算法的人无法获知数据
的内容.加密方法:(1)替换方法(2)置换方法(3)替换方法+置换方法199.3统计数据库安全性1.问题的提出统计数据库:用户只能对聚集数据进行访问,而不能对单个数据信息进行访问.例子:(1)查询所有女
高级程序员的人数.(2)查询所有女高级程序员的工资总额.如果查询(1)的结果为1,则查询(2)的结果就是这位女高级程序员的工资.2.解决的方法规定任何查询至少涉及N个以上的记录。203.问题的提出例子:如果用户A想知道用户B的工资,则可通过以下查询
:(1)查询用户A与N名职工的总工资.(2)查询用户B与N名职工的总工资.查询(1)的结果为R查询(2)的结果为S用户A已知自己的工资为P4.解决的方法规定任意两个查询的相交数据项不能超过M个。用户B的工资为:S-(R-P)21SQLServer的安全
控制22一、数据库权限的种类及用户的分类1.权限的种类第一类是对数据库管理系统进行维护的权限;第二类是对数据库中的对象和数据进行操作的权限;第一种是对数据库对象的权限,包括创建、删除和修改数据库对象;第二种是对数据库数据的操作权,包括对表、视图数据的
增、删、改、查。2.数据库用户的分类数据库中的用户按其操作权限的大小可分为如下三类:(1)数据库系统管理员:具有一切权限。(2)数据库对象拥有者:对其所拥有的对象具有一切权限。(3)普通用户:只具有对数据库数据的增、删、改、查权
。23二、SQLServer的安全控制一个用户如果要访问SQLServer数据库中的数据,他必须要经过三个认证过程:第一个认证过程是身份验证,这时用登录账号来标识用户,身份验证只验证用户连接到SQLServer数据库服务器的资格,即验证该用户是否
具有连接到数据库服务器的“连接权”。第二个认证过程是当用户访问数据库时,他必须具有对具体数据库的“访问权”,即验证用户是否是数据库的合法用户。第三个认证过程是当用户操作数据库中的数据或对象时,他必须具有所要进行的操作的“操作权”,即验证用户是否具有操作许可。24SQLServer
的用户有两种类型:Windows授权用户:来自于Windows的用户或组;SQL授权用户:来自于非Windows的用户,我们也将这种用户称为SQL用户。SQLServer为不同的用户类型提供有不同的安全认证模式:1.Windows身份验证模式Windows
身份验证模式允许用户WindowsNT或Windows2000用户连接到SQLServer。2.混合验证模式混合验证模式表示SQLServer接受Windows授权用户和SQL授权用户。如果不是Windows操作系统的用户希望也能使用SQLServer,则应该选择混合
验证模式。253.设置验证模式在企业管理器中设置SQLServer的身份验证模式的方法为:(1)在企业管理器的控制台上,在要设置验证模式的服务器名上单击鼠标右键,然后在弹出的菜单上选择“属性”。(2)在窗口中选择“安
全性”标签页,在窗口的“安全性”成组框中的“身份验证”部分,有两个选项:“SQLServer和Windows”以及“仅Windows”。前一个选项代表混合验证模式,后一个选项代表Windows验证模式。(3)单击“确定”按钮。262
7三、管理SQLServer登录账号内置系统帐号:用户创建自己的登录帐号:28建立登录账号使用企业管理器建立登录账号的步骤为:(1)展开“安全性”,单击“登录”节点。(2)右击内容窗格中的空白处,从弹出式菜单中选择“新建登录”命令。(3)设置如下选项:•在“名称”
文本框中输入登录的账号名。•在“身份验证”区域中,有如下两个选择:“Windows身份验证”模式“SQLServer身份验证”模式在“数据库”下拉列表框中选择登录到SQLServer之后默认情况下要连接的数据库。在“语言”列表框中选择显示给用户的信
息所使用的默认语言。29例子:添加一个windows用户user;添加一个SQL用户ss;30修改登录账号的属性对于已经建立好的SQLServer登录账号,还可以对登录账号的密码等进行修改。使用企业管理器修改登录密码的步骤为:右击想要修改密码的登录账号,从弹出式菜
单中选择“属性”命令,可以进行如下更改:更改密码:在“常规”选项卡上,可以在“密码”文本框中输入新的密码。更改默认数据库:在“数据库”列表框中选择一个新的数据库。更改显示给用户所使用的语言:在“语言”列表框中选择一个新的语言。31删除登录账号若不再
需要某个登录账号,或者不再允许某个登录账号访问SQLServer,则可以将其删除。使用企业管理器删除登录账号的步骤为:(1)在控制台上依次单击“MicrosoftSQLServers”和“SQLServe
r组”左边的加号,然后单击服务器,展开树形目录。(2)展开“安全性”节点,然后单击“登录”节点。(3)在右边的内容窗格中,右击想要删除的登录账号,从弹出的菜单中选择“删除”命令或按Delete键。(4)若确实要删除此登录账号,则单击
“是”,否则单击“否”,取消删除操作。32四、管理数据库用户用户具有了登录账号之后,他只能连接到SQLServer服务器上,但不具有访问任何用户数据库的能力,只有成为了数据库的合法用户后,才能访问此数据库。建立数据库用户使用企业管理器建立数据库用户的步骤为:(1
)单击要建立数据库用户的数据库节点,右击“用户”,并在弹出的菜单上选择“新建数据库用户”命令。(2)在“登录名”列表框中选择一个登录账号名。默认时“用户名”文本框的内容和用户选择的登录账号一样,用户可以在“用户名”文本框中输入一个新的数据库
用户名,也可以采用与登录账号一样的用户名。(3)单击“确定”关闭此窗口。33例子:添加SQL用户ss为用户数据库st的用户。34每个用户都属于public角色,使用户具有一些默认权限.35删除数据库用户从当前数据库
中删除一个用户,就是去掉了登录账号和数据库用户之间的映射关系。删除数据库用户之后,登录账号仍然存在。使用企业管理器删除数据库用户的过程为:(1)在控制台上,展开服务器组以及服务器。(2)展开“数据库”节点,
然后展开要删除用户的数据库。(3)单击“用户”,然后在右边的内容窗格中右击想要删除的数据库用户,从弹出的菜单中选择“删除”命令。(4)在弹出的确认窗口中,单击“是”,删除此用户。思考:如果某个登录帐号
已是某些数据库的用户,这个帐户能删除吗?36五、管理权限在SQLServer2000中,权限分为三种:1.对象权限对象权限是指用户对数据库中的表、视图等对象的操作权,相当于数据库操作语言(DML)的语句权限,2.语句权限语句
权限相当于数据定义语言(DDL)的语句权限,这种权限专指是否允许执行下列语句:CREATETABLE、CREATEVIEW等与创建数据库对象有关的操作。3.隐含权限隐含权限是指由SQLServer预定义的服
务器角色、数据库角色、数据库拥有者和数据库对象拥有者所具有的权限,隐含权限相当于内置权限,不需要再明确地授予这些权限。37权限的管理包含如下三个内容:授予权限:允许用户或角色具有某种操作权。收回权限:不允许用户或角色具有某种操作权,或者收回曾经授予的权限。拒绝访问:拒
绝某用户或角色具有某种操作权,既使用户或角色由于继承而获得这种操作权,也不允许执行相应的操作。对象权限语句权限隐含权限381.使用企业管理器管理数据库对象权限(1)展开“数据库”并展开要设置权限的数据库,
单击“用户”节点。(2)在内容窗格中右击要设置权限的数据库用户,并从弹出的菜单中选择“所有任务”下的“管理权限”命令。可以进行如下设置:授予权限拒绝权限收回权限√×39例子:为数据库st用户ss添加表student的有关权限。402.使用企业
管理器管理语句权限使用企业管理器管理数据库用户的语句权限的过程为:(1)展开“数据库”,右击要设置语句权限的数据库,并从弹出的菜单中选择“属性”,在弹出的窗口中,选择“权限”选项卡。(2)在要设置的语句权限以及用户所对应的方框中单击鼠标,使其中出现相应标记。41例子:为数据库st用户ss
添加语句权限。例子:演示拒绝权限、收回权限的区别。423.使用Transact-SQL语句管理对象权限在Transact-SQL语句中,用于管理权限的语句有三个:GRANT语句:用于授权;REVOKE语句:用于收回权限;DENY语句:用于拒绝权限。43管理对象权限的语句的语
法格式为:{GRANT|DENY}对象权限名[,…]ON{表名|视图名|存储过程名}TO{数据库用户名|用户角色名}[,…]REVOKE对象权限名[,…]ON{表名|视图名|存储过程名}FROM{数据库用户名|用户角色名}[,…]44例1:
为用户user1授予Student表的查询权。GRANTSELECTONStudentTOuser1例2:为用户user1授予SC表的查询权和插入权。GRANTSELECT,INSERTONSCTOu
ser1例3:收回用户user1授予Student表的查询权。REVOKESELECTONStudentFROMuser1例4:拒绝用户user1对SC表的更改权。DENYUPDATEONSCTOuser1例子:为数据库st用户ss授予表student的
插入权限。454.使用Transact-SQL语句管理语句权限管理语句权限的语句同管理对象权限的语句一样,也有GRANT、REVOKE和DENY三个,其语法格式为:{GRANT|DENY}语句权限名[,…]TO{数据库用户名|用户角色名}[,…]REVOKE语句权限名[,…]FRO
M{数据库用户名|用户角色名}[,…]46例1:授予user1具有创建数据库表的权限。GRANTCREATETABLETOuser1例2:授予user1和user2具有创建数据库表和视图的权限。GRANTCREATETABLE,CREATEVIEWTOuser1,use
r2例3:收回授予user1创建数据库表的权限。REVOKECREATETABLEFROMuser147六、角色在数据库中,为便于对用户及权限的管理,将一组具有相同权限的用户组织在一起,这一组具有相同权限的用户就称为角色
(Role)角色——角色系统预定义的固定角色用户根据自己的需要定义的用户角色固定的服务器角色固定的数据库角色——是为整个服务器设置的——是为具体的数据库设置的——属于数据库一级的角色481.固定的服务器角色49为用户设置服务器角色:502.固定的数据库角色
数据库的用户一定是public角色.且该角色的权限可改。例子:为数据库st公共用户授予表student的查询权限。51为用户设置数据库角色:52建立用户自定义的角色使用企业管理器建立用户自定义的角色的过程为:(1)在控制台上展开服务器组,并展开服务器。(2)展开“数据库”,并展
开要添加用户自定义角色的数据库。(3)右击“角色”节点,选择“新建数据库角色”命令。(4)在“名称”文本框中输入角色的名字。(5)选中“标准角色”单选按钮,以建立一个标准的数据库角色。(6)此时,可以在此单击“添加”按钮,直接在此角色中添加成员。(7)单击“确定”按钮,关闭此窗口。5354
1.用户自定义角色的授权2.添加和删除用户自定义角色的成员