05数据库安全及性能优化电子课件 MySQL数据库应用技术.pptx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《05数据库安全及性能优化电子课件 MySQL数据库应用技术.pptx》由会员分享,可在线阅读,更多相关《05数据库安全及性能优化电子课件 MySQL数据库应用技术.pptx(92页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数据库安全及性能优化模块五模块五学习目标了解MySQL日志维护、数据库优化的相关技术。掌握安全管理、权限管理的相关知识。掌握数据库备份和恢复的相关技术。知识重点创建、删除用户账号。设置访问权限。备份、恢复数据。查看日志。知识难点管理用户账号。设置访问权限。备份、恢复数据。5.1用户与权限管理在MySQL中有许多系统数据库,MySQL数据库中存储的是关于权限的表,有三个重要的表,分别为mysql.user、mysql.db和mysql.host。其中,mysql.user是一张重要的权限表。如果要查看用户,需要进入mysql.user表查看,其SQL语句如下。select*from user;执
2、行上述语句,效果如图5-1所示。图5-1 user表数据5.1用户与权限管理通过create user语句创建用户,其基本语法如下。create user username identified by password password,username identified by password password 其中,关键字user用来设置用户账号的名字,关键字identified by用来设置用户账号的密码。值username表示新建用户账户名,由user和host构成,形式为userhost。5.1.1 创建用户账号1.create user语句5.1用户与权限管理执行SQL语句cr
3、eate user,创建用户名为test1、主机名为localhost、密码为123456的用户账户。其SQL语句如下。执行上述语句,其结果如图所示。5.1.1 创建用户账号1.create user语句【例5-1】create user test1 localhost identified by 123456 ;create user创建出来的用户只有连接数据库的权限,需要后续继续授权。5.1用户与权限管理执行SQL语句create user,创建用户名为test2、允许远程登录的用户账户,密码为123456。其SQL语句如下。执行上述语句,其结果如图5-3所示。5.1.1 创建用户账号1.
4、create user语句【例5-2】create user test2 identified by 123456 ;图5-3 创建test2用户账户MySQL 5.7如果创建远程登录用户账户,%可以直接省略。5.1用户与权限管理执行SQL语句create user,创建用户名为test3、主机名为localhost、没有密码的用户账户。其SQL语句如下。执行上述语句,其结果如图5-4所示。5.1.1 创建用户账号1.create user语句【例5-3】create user test3 localhost;图5-4 创建test3用户账户5.1用户与权限管理create user 语句虽然
5、可以创建普通用户账户,但不便于为用户账号赋权限。而grant语句不仅可以创建用户账户,还可以对其进行赋权限,其基本语法如下。5.1.1 创建用户账号2.grant语句grant priv_type on database.table to username identified by password password ,username identified by password password 其中,priv_type表示新创建用户的权限。database.table表示新创建用户的权限范围,即只能在指定的数据库和表上使用权限。其他部分同create user 语句一致。5.1用户与权
6、限管理5.1.1 创建用户账号2.grant语句执行SQL语句grant,创建用户名为test4、主机名为localhost、密码为123456的用户账户,同时设置只对chapter5数据库emp表有select权限。其SQL语句如下。【例5-4】grant select on chapter5.emp to test4 localhost identified by 123456 ;执行上述语句,其结果如图5-5所示。5.1用户与权限管理5.1.1 创建用户账号2.grant语句执行SQL语句grant,创建用户名为test4、主机名为localhost、密码为123456的用户账户,同时设
7、置只对chapter5数据库emp表有select权限。其SQL语句如下。【例5-4】grant select on chapter5.emp to test4 localhost identified by 123456 ;执行上述语句,其结果如图5-5所示。图5-5 执行grant命令后的结果5.1用户与权限管理5.1.1 创建用户账号2.grant语句【例5-4】查看test4的权限,SQL语句为图5-6 test4用户的权限show grants for test4 localhost ;查看test4用户权限的结果如图5-6所示。grant的功能非常强大,后续内容会继续学习。5.1用
8、户与权限管理5.1.1 创建用户账号2.grant语句【例5-5】执行SQL语句grant,创建用户名为test5、主机名为localhost、密码为123456的用户账户,同时设置对数据库所有的表都有select、update、delete权限。其SQL语句如下。grant select,update,delete on*.*to test5 localhost identified by 123456 ;show grants for test5 localhost ;5.1用户与权限管理5.1.1 创建用户账号2.grant语句【例5-5】执行上述语句,结果如图5-7所示。图5-7 te
9、st5用户的权限当database.table取值为*.*时,代表数据库中所有的表。而chapter5.*则代表chapter5数据库中所有的表,*.emp代表数据库中所有的emp表。5.1用户与权限管理5.1.1 创建用户账号3.向mysql.user表中插入记录系统权限表mysql.user中存储了关于用户账户的信息,可以使用insert语句直接将用户信息添加到 mysql.user表 中,一 般 需 要 指 定 host、user和 authentication_string(MySQL 5.7以 后mysql.user表中没有了password字段,而是使用authentication
10、_string来代替)这三个字段,其SQL语句如下。insert into user(host,user,authentication_string)values(hostname ,username ,password(password );对于字段password的值,要使用函数password()进行加密。在具体创建用户账户时,由于user表中字段ssl_cipher、x509_issuer、x509_subject没有默认值,所以还需要设置这三个字段的值。5.1用户与权限管理5.1.1 创建用户账号3.向mysql.user表中插入记录【例5-6】执行SQL语句insert,创建用户名
11、为test6、主机名为localhost、密码为123456的用户账户。其SQL语句如下。insert into user(host,user,authentication_string,ssl_cipher,x509_issuer,x509_subject)values(localhost ,test6 ,password(123456 ),);select*from user;5.1用户与权限管理5.1.1 创建用户账号3.向mysql.user表中插入记录【例5-6】执行上述语句,结果如图5-8所示。图5-8 创建test6用户账户5.1用户与权限管理5.1.2 删除用户账号1.drop
12、 user语句drop user语句删除普通用户的基本语法如下。drop user user1,user2其中,user1是指所要删除的用户,由用户名和主机名构成。5.1用户与权限管理5.1.2 删除用户账号1.drop user语句执行SQL语句drop user,删除用户名为test6、主机名为localhost的用户账户。其SQL语句如下。drop user test6 localhost ;执行上述语句,结果如图5-9所示。【例5-7】图5-9 执行drop user语句的结果5.1用户与权限管理5.1.2 删除用户账号1.drop user语句【例5-7】图5-10 用drop us
13、er语句删除test6的结果通过select语句查询user表中的数据,再次确认test6是否删除成功,如图5-10所示。由执行结果可知,不再显示用户test6,说明该用户已被成功删除。5.1用户与权限管理5.1.2 删除用户账号2.delete语句可以使用delete语句直接将mysql.user表中用户账户的信息删除。使用该方法时,要保证登录用户账户拥有delete权限,其基本语法如下。delete from user where user=username and host=hostname ;其中,user为关键字;where子句后须跟两个条件,只有同时指定用户名和主机名才能唯一确定用
14、户账户。5.1用户与权限管理5.1.2 删除用户账号2.delete语句执行SQL语句delete,删除用户名为test5、主机名为localhost的用户账户。其SQL语句如下。delete from userwhere user=test5 and host=localhost ;执行上述语句后,通过select语句查询user表中的数据,再次确认test5是否删除成功,如图5-11所示。【例5-8】5.1用户与权限管理5.1.2 删除用户账号2.delete语句由执行结果可知,不再显示用户test5,说明该用户已被成功删除。【例5-8】图5-11 用delete语句删除test5的结果5
15、.1用户与权限管理5.1.3 设置访问权限1.分配权限MySQL中使用grant为用户分配权限,其基本语法如下。grant priv_type on database.table to username identified by password password ,username identified by password password with grant option grant option其中,priv_type表示新创建用户的权限。database.table表示新创建用户的权限范围,即只能在指定的数据库和表上使用自己的权限。priv_type表示新创建用户的权限,可以是
16、select、update等权限。可以使用grant命令重复给用户添加权限,权限叠加。例如,先给用户添加一个select权限,然后给用户添加一个insert权限,那么该用户就同时拥有了select和insert权限。5.1用户与权限管理5.1.3 设置访问权限1.分配权限执行SQL语句grant,创建用户名为test5,主机名为localhost,密码为123456的用户账户,同时设置对数据库所有的表都有select和delete权限,且加上with grant option子句,其SQL语句如下。【例5-9】grant select,delete on*.*to test5localhost
17、 identified by 123456 with grant option;5.1用户与权限管理5.1.3 设置访问权限1.分配权限执行上述语句,通过“show grants for test5localhost”查看该用户的权限,结果如图5-12所示。【例5-9】图5-12 test5用户的权限5.1用户与权限管理5.1.3 设置访问权限1.分配权限通过select语句查询user表中的数据,再次确认test5是否授权成功,如图5-13所示。【例5-9】图5-13 test5用户权限的查看从图5-13中可以看到,已经为test5用户赋予了select和delete权限。5.1用户与权限管
18、理5.1.3 设置访问权限1.分配权限执行SQL语句grant,为用户名为test4,主机名为localhost,密码为123456的用户账户赋予超级管理员的权限。其SQL语句如下。【例5-10】执行上述语句,通过“show grants for test4 localhost ”查看该用户的权限,结果如图5-14所示。grant all privileges on*.*to test4 localhost identified by 123456;图5-14 test4用户的权限5.1用户与权限管理5.1.3 设置访问权限1.分配权限通过select语句查询user表中的数据,再次确认tes
19、t4用户是否授权成功,如图5-15所示。【例5-10】图5-15 test4用户权限的查看从图5-15中可以看到,已经为test4用户赋予超级管理员的权限。5.1用户与权限管理5.1.3 设置访问权限1.分配权限执行SQL语句grant,为用户名为test3,主机名为localhost,密码为123456的用户账户,在chapter5数据库emp表中的id、name、salary列赋予select、delete和update的权限。其SQL语句如下。【例5-11】grant select,delete,update on chapter5.emp to test3 localhost iden
20、tified by 123456;5.1用户与权限管理5.1.3 设置访问权限1.分配权限执行上述语句,通过“show grants for test3localhost”查看该用户的权限,结果如图5-16所示。【例5-11】图5-16 test3用户的权限由执行结果可知,使用grant命令分配权限时,可以在多个层次上分配,不仅可以针对所有数据表、单个数据表,也可以针对表中的某几列。5.1用户与权限管理5.1.3 设置访问权限2.刷新权限使用刷新命令使赋予的权限生效,尤其是对权限表user、db、host等做了update或者delete更新时。其SQL语句如下。flush privilege
21、s;只要对权限做了更改就使用flush privileges命令来刷新权限。5.1用户与权限管理5.1.3 设置访问权限3.查看权限在MySQL中,可以通过select语句查询user表中各用户的权限,user表中的权限列是以“_priv”结尾的,如果支持有限个权限,列值为Y,如果不支持有限个权限,列值为N。执行如下SQL语句。select *from user;运行结果如图5-17所示。图5-17 使用select语句查看当前用户的权限5.1用户与权限管理5.1.3 设置访问权限3.查看权限 查看用户名为test4,主机名为localhost的账号的权限,SQL语句如下。【例5-12】sho
22、w grants for test4 localhost ;运行结果如图5-18所示。图5-18 使用show语句查看test用户的权限5.1用户与权限管理5.1.3 设置访问权限3.查看权限 如果关键字for省略,使用show grants语句可查看当前用户的权限。执行如下SQL语句。【例5-12】show grants;运行结果如图5-19所示。图5-19 使用show grants语句的结果5.1用户与权限管理5.1.3 设置访问权限4.取消权限 执行SQL语句revoke,回收用户名为test3,主机名为localhost的用户账户的update权限。其SQL语句如下。revoke u
23、pdate on chapter5.emp from test3 localhost ;图5-20 使用revoke语句回收test3的权限运行结果如图5-20所示。【例5-13】5.1用户与权限管理5.1.3 设置访问权限4.取消权限 执行SQL语句revoke,回收用户名为test4,主机名为localhost的用户账户的所有权限。通过select查看test4用户当前拥有的权限,如图5-21所示。图5-21 查看test4用户当前拥有的权限【例5-14】执行如下revoke语句。revoke all privileges,grant option from test4 localhost
24、 ;5.1用户与权限管理5.1.3 设置访问权限4.取消权限 执行上述语句,通过select再次查看test4用户当前拥有的权限,如图5-22所示。图5-22 使用revoke all 语句回收test4用户的权限【例5-14】由图5-22可以看出,该用户的权限已被取消,值由Y变为N。5.2数据库备份与恢复5.2.1 数据备份备份数据是数据库管理中最常用的操作。为了保证数据库中数据的安全,数据库管理员需要定期进行数据库备份。一旦数据遭到破坏,即需要通过备份的文件来还原数据库。因此,数据备份是很重要的工作。本节将介绍数据备份的两种工具,分别是mysqlpump备份工具和Navicat工具。5.2
25、数据库备份与恢复5.2.1 数据备份1.mysqlpump备份1)mysqlpump的特点和优势、缺点mysqlpump的主要特点如下。(1)并行备份数据库和数据库中的对象,加快备份过程。(2)更好地控制数据库和数据库对象(表、存储过程和用户账户)的备份。(3)备份用户账号作为账户管理语句,而不是直接插入MySQL的系统数据库。(4)备份出来直接生成压缩后的备份文件。(5)备份进度指示(估计值)。(6)重新加载(还原)备份文件。(7)备份可以排除或指定数据库。5.2数据库备份与恢复5.2.1 数据备份1.mysqlpump备份1)mysqlpump的特点和优势、缺点(1)支持基于表的并行导出功
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 05数据库安全及性能优化电子课件 MySQL数据库应用技术 05 数据库 安全 性能 优化 电子 课件 MySQL 应用技术
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内