第章数据库安全管理_第1页
第章数据库安全管理_第2页
第章数据库安全管理_第3页
第章数据库安全管理_第4页
第章数据库安全管理_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

MySQL数据库应用与实践教程卜耀华石玉芳编著第1章数据库技术基础学习要点通过本章的学习,能够了解数据的安全控制机制;掌握数据库安全控制的各种方法。能够对MySQL数据库中的用户和权限进行管理;能够对MySQL日志文件进行管理;熟悉每种数据备份与数据恢复的使用。第8章数据库安全管理第1章数据库技术基础第8章数据库安全管理学习内容8.1MySQL的安全性8.2用户管理8.3权限管理课堂实践1:创建数据管理员用户8.4日志文件8.5数据备份与恢复课堂实践2:备份教务管理系统数据库第1章数据库技术基础第8章数据库安全管理8.1MySQL的安全性8.1.1MySQL安全性概述数据库的安全控制有多种措施,通常使用用户和权限管理的方法。用户管理用来阻止非法的用户登录到数据库服务器中,而利用操作权限管理来控制越权的非法操作。8.1.2MySQL安全管理等级MySQL安全管理等级包括:1.操作系统安全性2.服务器安全性3.数据库安全性4.数据库对象安全性第1章数据库技术基础第8章数据库安全管理8.2用户管理8.2.1创建用户在MySQL中,使用CREATEUSER语句创建用户。其语法格式如下:CREATEUSER<用户>[IDENTIFIEDBY[PASSWORD]'密码'][,用户n[IDENTIFIEDBY[PASSWORD]'密码n']][,…];例8.1创建两个新用户U_student1和U_student2。密码分别为1234和5678。SQL语句如下:createuserU_student1@localhostidentifiedby‘1234’,U_student2@localhostidentifiedby‘5678’;usemysql;selectuser,host,authentication_stringfromuser;第1章数据库技术基础第8章数据库安全管理8.2.2修改用户名和密码1.修改用户名语法格式如下:RENAMEUSER<旧用户名>TO<新用户名>[,<旧用户名n>TO<新用户名n>][,…];例8.2将用户U_student1的名称改为U_stu1。SQL语句如下:renameuserU_student1@localhosttoU_stu1;2.修改用户密码语法格式如下:SETPASSWORD[FOR用户]=PASSWORD('新密码');例8.3将用户U_student2的密码修改为abc123。SQL语句如下:setpasswordforU_student2@localhost=password('abc123');第1章数据库技术基础第8章数据库安全管理8.2.3删除用户使用DROPUSER语句可删除一个或多个MySQL用户,并取消其权限。DROPUSER语句必须拥有MySQL数据库的全局CREATEUSER权限或DELETE权限。其语法格式如下:DROPUSER<用户>[,…];例8.4删除U_stu1和U_student2用户。SQL语句如下:dropuserU_stu1,U_student2@localhost;第1章数据库技术基础第8章数据库安全管理8.3权限管理8.3.1权限概述(1)列权限:作用于在一个给定表的单个列。例如,使用UPDATE语句更新student表中学号列值的权限。(2)表权限:作用于一个给定表的所有列。例如,使用SELECT语句查询student表的所有数据的权限。(3)数据库权限:作用于一个给定数据库的所有表。例如,在已有的D_sample数据库中创建新表的权限。(4)全局权限:作用于一个给定服务器上的所有数据库。例如,删除已有的数据库或者创建一个新的数据库的权限。第1章数据库技术基础第8章数据库安全管理权限的管理包含如下两个内容。(1)授予权限:允许用户具有某种操作权。(2)收回权限:不允许用户具有某种操作权,或者收回曾经授予的权限。8.3.2授予权限在MySQL中,使用GRANT语句授予权限。拥有GRANT权限的用户才可以执行GRANT语句。其语法格式如下:GRANT<权限名称>[(列名)][,<权限名称>[(列名)]][,…n]ON[TABLE|FUNCTION|PROCEDURE]{表名或视图名|*|*.*|数据库名.*|数据库名.表名或视图名}TO<用户>[IDENTIFIEDBY[PASSWORD]'密码'][,<用户>[IDENTIFIEDBY[PASSWORD]'密码']][,…n][WITHGRANTOPTION];第1章数据库技术基础第8章数据库安全管理例8.5使用GRANT语句创建一个新用户U_student,密码为studentpwd。用户U_student对所有的数据有查询和插入权限,并授予GRANT权限。SQL语句如下:grantselect,inserton*.*toU_student@localhostidentifiedby‘studentpwd’withgrantoption;例8.6使用GRANT语句将D_sample数据库中student表的DELETE权限授予用户U_student。SQL语句如下:grantdeleteonD_sample.studenttoU_student@localhost;例8.7使用GRANT语句将D_sample数据库中sc表的成绩列的UPDATE权限授予用户U_student1。SQL语句如下:grantupdate(成绩)onD_sample.sctoU_student1@localhost;第1章数据库技术基础第8章数据库安全管理8.3.3收回权限(1)收回所有权限其语法格式如下:REVOKEALLPRIVILEGES,GRANTOPTIONFROM<用户>[,<用户>][,…n];例8.8使用REVOKE语句收回U_student用户的所有权限,包括GRANT权限。SQL语句如下:revokeallprivileges,grantoptionfromU_student@localhost;(2)收回指定权限其语法格式如下:REVOKE<权限名称>[(列名)][,<权限名称>[(列名)]][,…n]ON{表名或视图名|*|*.*|数据库名.*|数据库名.表名或视图名}FROM<用户>[,<用户>][,…n];第1章数据库技术基础第8章数据库安全管理例8.9收回U_student1用户对D_sample数据库中sc表的成绩列的UPDATE权限。SQL语句如下:revokeupdate(成绩)onD_sample.scfromU_student1@localhost;8.3.4查看权限1.使用SELECT语句查看权限例8.10使用SELECT语句查看user表中用户的基本权限信息。SQL语句如下:selecthost,user,select_priv,insert_priv,update_priv,delete_priv,create_priv,drop_priv,alter_priv,show_db_priv,create_user_privfrommysql.user;第1章数据库技术基础第8章数据库安全管理2.使用SHOWGRANTS语句查看权限使用SHOWGRANTS语句可以查看指定用户的权限信息,其语法格式如下:SHOWGRANTSFOR<用户>;例8.11使用SHOWGRANTS语句查看U_student1用户的权限信息。SQL语句如下:showgrantsforU_student1@localhost;第1章数据库技术基础第8章数据库安全管理课堂实践1:创建数据管理员用户1.使用GRANT语句,创建一个数据管理员用户U_eams,密码为system123。用户U_eams对D_eams数据库的数据有查询和更新权限,并授予GRANT权限。SQL语句如下:grantselect,updateonD_eams.*toU_eams@localhostidentifiedby‘system123’withgrantoption;2.以数据管理员U_eams用户身份登录MySQL服务器,操作步骤为:(1)打开命令行窗口,进入MySQL安装目录下的bin目录:cdC:\ProgramFiles\MySQL\MySQLServer5.7\bin(2)通过mysql命令来登录MySQL服务器。命令如下:mysql-hlocalhost-uU_eams-psystem123第1章数据库技术基础第8章数据库安全管理8.4日志文件8.4.1二进制日志1.查看二进制日志开启状态使用SHOWGLOBAL语句查看二进制日志开启状态。SQL语句如下:showglobalvariableslike‘%log_bin%’;2.查看二进制日志大小使用SHOWBINARYLOGS语句查看当前服务器使用的二进制文件及其大小。SQL语句如下:showbinarylogs;3.查看二进制日志信息使用SHOWBINLOGEVENTS语句查看二进制日志信息。其语法格式如下:SHOWBINLOGEVENTS[IN'日志文件名'][FROM位置][LIMIT[offset,]行数];第1章数据库技术基础第8章数据库安全管理例8.12使用SHOWBINLOGEVENTS语句查看从指定的事件位置开始的二进制日志信息。SQL语句如下:showbinlogeventsfrom98886limit3\G;4.删除二进制日志文件(1)删除所有二进制日志文件语法格式如下:RESETMASTER;(2)删除部分二进制日志文件其语法格式如下:PURGE{MASTER|BINARY}LOGS{TO'日志文件名'|BEFORE'date'};8.4.2错误日志1.查看错误日志使用SHOWGLOBAL语句查看错误日志。SQL语句如下:showglobalvariableslike‘%log_error%’;第1章数据库技术基础第8章数据库安全管理2.删除错误日志文件使用mysqladmin命令删除错误日志。其命令如下:mysqladmin-uroot-pflush-logs8.4.3通用查询日志1.查看通用查询日志开启状态使用SHOWGLOBAL语句查看通用查询日志开启状态。SQL语句如下:showglobalvariableslike‘general_log%’;设置通用查询日志功能为开启状态,SQL语句如下:setglobalgeneral_log='on';2.查看通用查询日志信息查看通用查询日志信息。SQL语句如下:showcreatetablemysql.general_log\G;第1章数据库技术基础第8章数据库安全管理8.4.4慢查询日志1.查看慢查询日志开启状态使用SHOWGLOBAL语句查看慢查询日志开启状态。SQL语句如下:showglobalvariableslike‘slow_query_log%’;2.查看慢查询日志信息查看慢查询日志信息。SQL语句如下:select*frommysql.slow_log;第1章数据库技术基础第8章数据库安全管理8.5数据备份与恢复8.5.1数据备份1.备份的重要性2.备份类型MySQL提供以下3种数据库备份类型。(1)完整备份完整备份指备份整个数据库,包括表、视图、存储过程等数据库对象以及日志。(2)增量备份增量备份是指数据库从上一次完整备份或者最近一次的增量备份以来改变的内容的备份。(3)差异备份差异备份是指将从最近一次完整数据库备份以后发生改变的数据进行备份。第1章数据库技术基础第8章数据库安全管理3.备份数据(1)使用mysqldump命令备份数据①备份数据库或表使用mysqldump命令备份数据库或表。其命令格式如下:MYSQLDUMP–u<用户名>–h<主机名>-p<密码><数据库名>[表名[表名…]]><备份文件的名>.sql例8.13使用mysqldump命令备份数据库D_sample中的所有表。其命令如下:mysqldump-uroot-hlocalhost-pD_sample>d:\database_bak\D_sample_bak.sql例8.14使用mysqldump命令备份数据库D_sample中的student表、coure表和sc表,其命令如下:mysqldump-uroot-hlocalhost-pD_samplestudentcoursesc>d:\database_bak\D_sample_table_bak.sql第1章数据库技术基础第8章数据库安全管理②备份多个数据库使用mysqldump命令备份多个数据库。其命令格式如下:MYSQLDUMP–u<用户名>–h<主机名>-p<密码>--databases<数据库名>[<数据库名>…]><备份文件的名>.sql例8.15使用mysqldump命令备份数据库D_sample和D_test,其命令如下:mysqldump-uroot-hlocalhost-p--databasesD_sampleD_test>d:\database_bak\db_bak.sql③备份所有数据库使用mysqldump命令备份所有数据库。其命令格式如下:MYSQLDUMP–u<用户名>–h<主机名>-p<密码>--all-databases><备份文件的名>.sql第1章数据库技术基础第8章数据库安全管理例8.16使用mysqldump命令备份所有数据库,其命令如下:mysqldump-uroot-hlocalhost-p--all-databases>d:\database_bak\all_bak.sql(2)使用SQL语句备份数据语法格式如下:SELECT*FROM<表名>[WHERE条件]INTOOUTFILE'目标文件'[选项];例8.17使用SELECTINTOOUTFILE语句备份D_sample数据库中student表的数据。要求字段值之间用“、”隔开,字符型数据用双引号括起来。每行以“。”为结束标志。SQL语句如下:useD_sample;select*fromstudentintooutfile'd:/database_bak/table_bak.txt'fieldsterminatedby'、‘optionallyenclosedby'"'linesterminatedby'。';第1章数据库技术基础第8章数据库安全管理(3)使用日志备份数据①做完整备份。备份到mysqldump命令所在的目录的fullbackup.sql文件。其命令如下:mysqldump-hlocalhost-uroot-p--single-transaction--flush-logs--master-data=2--all-databases>fullbackup.sql②做增量备份。完整备份整个服务器的数据库后,并刷新日志文件。其命令如下:mysqladmin-hlocalhost-uroot-pflush-logs8.5.2数据恢复1.使用mysql命令恢复数据命令格式如下:MYSQL–u<用户名>–p[数据库名]<文件名.sql第1章数据库技术基础第8章数据库安全管理例8.18使用mysql命令将备份文件D_sample_bak.sql恢复到数据库中,其命令如下:mysql–uroot–pD_sample<d:\database_bak\D_sample_bak.sql2.使用SQL语句恢复数据(1)使用LOADDATAINFILE语句恢复数据语法格式如下:LOADDATAINFILE'文件名.txt'INTOTABLE<表名>[选项][IGNORE行数LINES];例8.19使用LOADDATAINFILE语句把d:/database_bak/table_bak.txt文件中的数据恢复到D_sample数据库中student表中。SQL语句如下:useD_sample;loaddatainfile'd:/database_bak/table_bak.txt'intotablestudentfieldsterminatedby'、'optionallyenclosedby'"‘linesterminatedby'。';第1章数据库技术基础第8章数据库安全管理(2)使用SOURCE语句恢复数据语法格式如下:SOURCE文件名.sql;例8.20使用SOURCE语句将备份文件D_sample_bak.sql恢复到数据库D_sample中,SQL语句如下:useD_sample;sourced:/database_bak/D_sample_bak.sql;3.使用日志恢复数据(1)恢复fullbackup.sql文件的完整备份。其命令如下:mysql-uroot-p<fullbackup.sql(2)恢复PROF-PC-bin.000043和PROF-PC-bin.000044的增量备份。其命令如下:mysqlbinlogPROF-PC-bin.000043PROF-PC-bin.000044|mysql-uroot-p第1章数据库技术基础第8章数据库安全管理课堂实践2:备份教务管理系统数据库1.使用mysqldump命令备份教务管理系统数据库D_eams中的

温馨提示

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

评论

0/150

提交评论