数据库原理与应用(MySQL版) 课件 第11章 安全管理_第1页
数据库原理与应用(MySQL版) 课件 第11章 安全管理_第2页
数据库原理与应用(MySQL版) 课件 第11章 安全管理_第3页
数据库原理与应用(MySQL版) 课件 第11章 安全管理_第4页
数据库原理与应用(MySQL版) 课件 第11章 安全管理_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第11章

安全管理

数据库原理与应用1本章内容11.1安全管理概述11.2数据库访问控制11.3MySQL的安全管理211.1安全管理概述数据库安全管理是指采取各种安全措施对数据库及其相关文件和数据进行保护。数据库系统的重要功能之一是确保系统安全,其中的核心和关键是数据安全。数据库管理系统提供了安全控制机制,通过身份验证、数据库用户权限确认等一系列措施来保护数据库中的信息资源,以防止这些资源被破坏和被非法使用。311.1.1安全管理目标在数据库中,对非法活动可采用加密存、取数据的方法控制;对非法操作可使用用户身份验证、限制操作权来控制;对无意的损坏可采用提高系统的可靠性和数据备份等方法来控制。4数据库的安全管理包括的内容防止非法数据访问防止滥用过高权限审计记录备份数据的安全管理5防止非法数据访问数据库管理系统根据用户或应用的授权来检查访问请求,以保证仅允许授权的用户访问数据库。数据库的访问控制比操作系统的文件访问控制复杂。首先,控制的对象有更细的粒度,如表、记录、属性等;其次,数据库中的数据是语义相关的,所以用户可以不直接访问数据项而间接获取数据。主要通过用户身份验证实现。6防止滥用过高权限如果数据库管理员不进行细化的访问控制,可能导致用户或用户组被授予超出其特定工作需要的访问权限,从而对数据库数据安全造成风险。防止滥用过高权限需要针对每一个用户(或用户组)的数据访问需求,授予最合适的权限。7审计记录自动记录所有敏感的或异常的数据库事务应该是所有数据库的一项基础功能。如果数据库审计策略不足,则使用单位将在很多级别上面临严重风险。为了保证数据库中数据的安全,一般要求数据库管理系统能够将所有数据操作记录下来。8备份数据的安全管理存放备份数据库的存储介质的安全管理也是数据安全的重要部分,如果备份数据库的存储介质被盗且没有进行加密保护,也会造成数据暴露或泄密,因此为防止备份数据库泄露应对数据库备份进行加密存储。910文件操作控制操作权限控制身份验证用户数据库应用程序数据库管理系统操作系统数据存储数据库11.1.2安全控制模型用户要向数据库应用程序提供其身份(用户名和密码),交给数据库管理系统进行验证,只有合法的用户才能进入到下一步的操作。对于合法的用户,当其要在数据库中执行某个操作时,数据库管理系统还要验证此用户是否具有执行该操作的权限。如果有操作权限,才执行操作,否则拒绝执行用户的操作。11本章内容11.1安全管理概述11.2数据库访问控制11.3MySQL的安全管理1211.2数据库访问控制DBMS通常采用自主存取控制强制存取控制基于角色的访问控制等方法来解决数据库安全系统的访问控制问题。13主体和客体在数据库访问控制中,一般使用“主体”和“客体”来表示参与控制操作的实体。主体(Subject):访问操作中的主动实体,在数据库环境下一般指用户。客体(Object):访问操作中的被动实体,在数据库环境下一般指数据库对象,包括表、视图、存储过程等。1411.2.1自主访问控制自主访问控制是这样一种访问控制方式:由数据库对象的拥有者自主决定是否将自己拥有的对象的部分或全部访问权限授予其他用户。也就是说,在自主访问控制下,用户可以按照自己的意愿,有选择地与其他用户共享他拥有的数据库对象。15用户权限的种类数据库权限:对数据库对象的创建、删除、修改以及对数据库备份等权限。对象权限:对数据库对象中的数据的操作权限。数据库权限一般由DBA指定,也可以由具有特权的其他用户授予。对象权限一般由数据库对象的所有者授予用户,也可由DBA指定,或者由具有该对象权限的其他用户授权。16自主访问控制的矩阵模型矩阵模型利用矩阵表示系统中主体、客体和每个主体对每个客体所拥有权限之间的关系。任何访问控制策略最终均可被模型化为访问矩阵形式:一行表示一个主体的能力列表,一列表示一个客体的访问控制列表。每个矩阵元素规定了相应的主体对应于相应的客体被准予的访问许可、实施行为。17访问控制矩阵18

客体

主体O1O2S1读读、写S2读、写-11.2.2强制访问控制强制访问控制(MandatoryAccessControl,MAC)是根据客体的敏感标记和主体的访问标记对客体访问实行限制的一种方法。主体对客体的访问规则有:保密性规则完整性规则19保密性规则仅当主体的许可证级别高于或者等于客体的密级时,该主体才能读取相应的客体。(下读)仅当主体的许可证级别低于或者等于客体的密级时,该主体才能写相应的客体。(上写)20完整性规则仅当主体的许可证级别低于或者等于客体的密级时,该主体才能读取相应的客体。(上读)仅当主体的许可证级别高于或者等于客体的密级时,该主体才能写相应的客体。(下写)21本章内容11.1安全管理概述11.2数据库访问控制11.3MySQL的安全管理2211.3MySQL的安全管理MySQL实现了一个复杂的访问控制和权限系统,允许创建全面的访问规则来处理客户端操作并有效防止未经授权的客户端访问数据库系统。在MySQL中可以创建不同的用户,并授予不同的权限,以保证MySQL中数据的安全。23MySQL的安全管理(续)当客户端连接到服务器时,MySQL访问控制有两个阶段:阶段1:MySQL服务器根据用户身份标识(主机名+用户名组成的账号名称)在MySQL的访问权限控制表中查询相关信息,以确定需要接受或拒绝该用户的连接。阶段2:用户连接成功之后,MySQL服务器继续检查用户的访问请求,确定是否有足够的权限来执行。24MySQL8提高的安全控制MySQL8提供了角色功能,可以通过对用户赋予角色的方式对用户授权。MySQL的安全控制主要包括:用户管理权限管理角色管理等内容在进行这些管理之前,首先要建立登录账户,权限的管理是以登录账户为基础的。2511.3.1登录管理登录MySQL服务器有两种方式:命令行方式:一般用在服务器上安装的MySQL不提供图形界面,需要通过命令行方式登录。图形界面方式:MySQL8提供了MySQLWorkbench工具,使用该工具可以用图形化的方式登录到数据库服务器。26命令行方式登录

mysql–h主机名|主机ip–u用户名-p密码[-P端口号][数据库名]-h:后面接主机名或者主机IP。-u:后面接用户名。-p:会提示输入密码。-P:可选项。后面接MySQL服务的端口,通过该参数连接到指定的端口。MySQL服务的默认端口是3306,不使用该参数时自动连接到3306端口。27图形界面方式登录2811.3.2用户管理MySQL用户主要包括两种:超级管理员:root用户,具有MySQL提供的所有权限。普通用户:权限取决于该用户被授予的权限。实际开发中很少直接使用root用户,因为权限过高,操作不当会给数据带来很大的风险。一般是在数据库管理系统安装后第一次登录系统时使用root账号,然后由root用户根据需要创建不同权限的用户。29(1)创建用户创建用户语句为语法格式:CREATEUSER<用户>[IDENTIFIEDBY'密码'][,用户名[IDENTIFIEDBY'密码']];<用户>:指定创建用户的账号,格式为:'username'@'hostname'。user_name:用户名,host_name:主机名。如果想让该用户可以从远程主机登录MySQL,则'hostname'可以使用通配符“%”。30示例例11-2创建用户名为testuser1,只在本机(localhost)登录,密码为“123456”的用户。CREATEUSERtestuser1@localhostIDENTIFIEDBY'123456';例11-3创建用户名为testuser2,只能在192.168.0.5主机登录,密码为“123456”的用户。CREATEUSER'testuser2'@'192.168.0.5'IDENTIFIEDBY'123456';31示例(续)例11-4创建用户名为testuser3,可以在所有主机登录,密码为“123456”的用户。CREATEUSER'testuser3'@'%'IDENTIFIEDBY'123456';或CREATEUSER'testuser3'IDENTIFIEDBY'123456';32(2)删除用户删除用户用DROPUSER语句,基本语法形式为:DROPUSER<用户>[,<用户>,…];例11-5删除testuser1@localhost用户。

DROPUSERtestuser1@localhost;33(3)设置当前用户密码使用ALTERUSER语句:ALTERUSERUSER()IDENTIFIEDBY'新密码';注:USER()函数用于获取当前的登录用户。使用SET语句:SETPASSWORD='新密码';3411.3.3权限管理权限管理主要包括两个操作:授予权限和收回权限。授予权限的基本原则:只授予能满足用户需要的最小权限,防止用户有意破坏数据库。

创建用户时限制用户的登录主机,一般是限制成指定IP或者内网IP段。定期对用户及用户权限进行清理,删除不必要的用户或者收回多余的权限。35(1)授予权限授权语句为GRANT,语法格式如下:GRANT权限1[,权限2,…权限n]|ALLPRIVILEGESON[数据库名.]表名|数据库名.*TO<用户>;ALLPRIVILEGES:表示全部操作权限。数据库名.*:表示数据库中的全部表。若省略数据库名,表示对当前数据库中的用户进行授权。36授予权限示例例11-6授予本机登录用户testuser1对“db_borrows”数据库中books表的查询权限。GRANTSELECTONdb_borrows.booksTOtestuser1@localhost;37授予权限示例(续)例11-7限制用户testuser2用户只能从192.168.0.5主机登录,并授予该用户对“db_borrows”数据库中的books表具有插入和查询权限。GRANTINSERT,SELECTONdb_borrows.booksTOtestuser2@192.168.0.5;

38授予权限示例在MySQL中,如果某用户对某数据库中的所有表具有相同的权限,比如都具有查询权限,则可使用简写的方法表示所有表,方法为:数据库名.*。对例11-6,设要授予用户testuser1对“db_borrows”数据库中的所有表都有查询权限:GRANTSELECTONdb_borrows.*TOtestuser1@localhost;39授予权限示例例11-9授予从192.168.0.5主机登录的testuser2用户,对“db_borrows”数据库中的students表具有全部操作权限。GRANTALLPRIVILEGESONdb_borrows.studentsTOtestuser2@192.168.0.5;40(2)收回权限收回权限就是取消已经赋予用户的某些权限。使用REVOKE语句收回用户的权限,语法如下:REVOKE权限1[,权限2,…权限n]|ALLRIVILEGESON[数据库名.]表名|数据库名.*FROM<用户>;41收回权限示例例11-10收回通过本机登录的testuser1用户“db_borrows”数据库中books表的查询权限。REVOKESELECTONdb_borrows.booksFROMtestuser1@localhost;例11-11收回从192.168.0.5主机登录的testuser2用户对“db_borrows”数据库中books表的插入权限。REVOKEINSERTONdb_borrows.booksFROMtestuser2@192.168.0.5;42收回权限示例例11-12收回从192.168.0.5主机登录的testuser2用户,对“db_borrows”数据库中students的全部操作权限。REVOKEALLPRIVILEGESONdb_borrows.studentsFROMtestuser2@192.168.0.5;注意:在赋予了用户新权限之后,需要使用以下命令刷新权限,使新的权限生效:FLUSHPRIVILEGES;已经登录的用户需要重新登录以获取新的权限。433.查看权限查看当前用户权限的语句如下:

SHOWGRANTS;查看某用户的全部权限的语句为:SHOWGRANTSFOR用户名@主机地址;4411.3.4角色管理角色是一组权限的组合,使权限管理更加方便。创建好角色后,角色中没有任何权限,需要向角色中添加权限。然后将角色授予用户,该用户就具有了角色中的所有权限。在使用角色的过程中,可以随时向角色中添加权限,和删除权限,用户的权限也随之改变。如果要收回用户从角色那里得到的所有权限,只需将角色从用户收回即可。451.创建角色创建角色使用CREATEROLE语句,其语法格式如下:CREATEROLE'role_name'[@'host_name'][,'role_name'[@'host_name']]...role_name:角色名host_name:主机名,即用户连接MySQL时所用主机的名字。如果想让该角色可以从任意远程主机登录数据库服务器,可以使用通配符“%”。如果在创建的过程中,只给出了角色名,而没指定主机名,则主机名默认为“%”。46创建角色(示例)例11-13创建一个本地登录的图书管理员角色,角色名为manager:CREATEROLEmanager@localhost;例11-14创建一个可以从任意主机登录的图书管理员角色,角色名为manager2:CREATEROLE'manager2'@'%';或:CREATEROLE'manager2';47(2)给角色赋予权限给角色授权也使用GRANT语句,其语法为:GRANT权限1[,权限2,…权限n]|ALLPRIVILEGESON[数据库名.]表名|数据库名.*TO'角色名'[@'主机名']例11-15给图书管理员manager角色授予“db_borrows”数据库中books表的查询权限。GRANTSELECTONdb_borrows.booksTOmanager@localhost;483.给用户赋予角色角色创建并被授权后,要赋给用户并处于“激活状态”才能发挥作用。给用户赋予角色可使用GRANT语句实现:GRANT角色1[,角色2,…]TO用户1[,用户2,…];例11-16给testuser1用户赋予manager@localhost角色。GRANTmanager@localhostTOtestuser1@localhost;49(3)给用户赋予角色给用户赋予角色后,用户需要激活角色才能真正具有角色的权限。激活用户的角色的方法有两种:默认激活显式激活50默认激活如果角色已被设为用户的默认角色,则当用户登录时,角色将自动被激活。将角色设为用户的默认角色语法如下:

ALTERUSER<用户>DEFAULTROLE<角色>;51显式激活如果角色未

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论