MySQL数据库的安全机制管理实验

实验5:数据库的安全机制管理实验

Mysql 5.5版本安装教程.

这里有个数据库备份目录的设置需要完成

找到自己MySQL目录下的my.ini文件,修改读写权限。

#一般是在这个目录下,根据实际情况判断
C:\Program Files\MySQL\MySQL Server 5.5

右键选择属性->安全->把User的权限都勾选上->确定
在这里插入图片描述
在这个位置插入这一句,并保存退出

#备份数据库的路径
secure_file_priv="D:/backup"

在这里插入图片描述

一、实验目的:

  1. 理解My SQL的权限系统的工作原理和MySQL备份的概念。
  2. 理解My SQL账户及权限的概念。
  3. 掌握管理My SQL账户和权限的方法。
  4. 学会创建和删除普通用户的方法和密码管理的方法。
  5. 学会如何进行权限管理。
  6. 掌握各种备份数据库的方法。
  7. 掌握如何从备份中恢复数据。
  8. 掌握数据库迁移的方法。
  9. 掌握表的导入与导出的方法。

二、验证性实验

1、实验任务如下:
(1) 使用root用户创建Testuser1用户,初始密码设置为123456。让该用户对所有数据库拥有SELECT、CREATE、DROP、SUPER权限。

grant select,create,drop,super on *.* to Testuser1@localhost identified by '123456' 
with grant option; 

(2) 创建Testuser2用户,该用户没有初始密码。

create user Testuser2@localhost;

(3) 用Testuser2用户登录,将其密码修改为000000。

mysql -u Testuser2 -p
set password=password('000000'); 

(4) 用Testuser1用户登录,为Testuser2用户设置CREATE和DROP权限。

grant create,drop on *.* to Testuser2@localhost ;

(5) 用Testuser2用户登录,验证其拥有的CREATE和DROP权限。

mysql -u Testuser2 -p000000
create database jxgl;
create table jxgl.t1(id int);
drop table jxgl.t1;

(6) 用root用户登录,收回Testuser1用户和Testuser2用户的所有权限。(在workbench中验证时必须重新打开这两个用户的连接窗口)

revoke all on *.* from Testuser1@localhost,Testuser2@localhost;

(7) 删除Testuser1用户和Testuser2用户。

drop user Testuser1@localhost,Testuser2@localhost;

(8) 修改root用户的密码。

update mysql.user set password=password("000000") where user='root';

2.数据库备份
cmd控制台: 先进入mysql所在的bin目录下,如:cd C:\Program Files\MySQL\MySQL Server 5.5\bin

(1) 使用mysqldump命令备份JXGL数据库,生成的gbak.sql文件存储在D:\mysqlbak。

mysqldump -u root -p123456 jxgl > d:\mysqlbak\gbak.sql

(2) 使用mysqldump命令备份JXGL数据库中的course表和sc表,生成的cs.sql文件存储在D:\mysqlbak。

mysqldump -u root -p123456 jxgl course sc > d:\mysqlbak\cs.sql

(3) 使用mysqldump命令同时备份两个数据库,具体数据库自定。

mysqldump -u root -p123456 --databases jxgl readbook > d:\mysqlbak\grbak.sql

(4) 将JXGL数据库删除,分别使用mysql命令和source命令将JXGL数据库的备份文件gbak.sql恢复到数据库中。

mysql -u root -p123456
drop database jxgl;
create database jxgl;
use jxgl;
source d:/mysqlbak/gbak.sql;

(5) 将数据库中的course表和sc表删除,分别使用mysql命令和source命令将备份文件cs.sql恢复到JXGL数据库中。

drop table course,sc;
source d:mysqlbak/cs.sql;

三、设计性实验

1.用户创建、权限分配
(1)将使用root用户创建examl用户,初始密码设置为123456。让该用户对所有数据库拥有SELECT、CREATE、DROP、SUPER和GRANT权限。

grant select,create,drop,super on *.* to exam1@localhost identified by '123456' 
with grant option;

(2)创建用户exam2,该用户没有初始密码。

create user exam2@localhost;

(3)用exam2登录,将其密码设置为686868。

mysql -u exam2 -p
set password=password('686868');

(4)用examl登录,为exam2设置CREATE和DROP权限。

mysql -u exam1 -p123456
grant create,drop on *.* to exam2@localhost;

(5)用root用户登录,收回examl和exam2的所有权限。

mysql -u root -p123456
revoke all on *.* from exam1@localhost,exam2@localhost;

(7) 删除exam1用户和exam2用户。

drop user exam1@localhost,exam2@localhost;

(8) 修改root用户的密码。

update mysql.user set password=password("000000") where user='root';

2.数据库备份和还原
对JXGL数据库中的score表进行备份和还原的操作。本节要求的操作如下:
(1)使用mysqldump命令来备份score表。备份文件存储在D:\backup路径下。

create database jxgl;
use jxgl;
create table score(
score int(4)
);
mysqldump -u root -p123456 jxgl score > d:/backup/sc.sql

(2)使用mysql命令来还原score表。

use jxgl;
drop table score;
source d:/backup/sc.sql;

(3)使用SELECT…INTO OUTFILE来导出score表中的记录。 记录存储到D:\backup\score.txt中o

select  *  from score into outfile 'D:/backup/score.txt';

(4)使用mysqldump命令,将score表的记录导出到XML文件中。这个XML文件存储在D:\backup中。

mysqldump -u root -p123456 --xml jxgl score > d:/backup/score.xml

四、观察与思考

1.新创建的MySQL用户能否在其他机器上登录MySQL数据库?
答:能,可以用IP地址,回环地址127.0.0.1。
grant all on . to username@’%’ identified by ‘password’;
2.如何选择备份数据库的方法?
答:备份方式有:
1.mysqldump工具备份
2.直接复制整个数据库目录(对于InnoDB存储引擎不适用)备份
3.mysqlhotcopy工具备份
备份数据库或表最快的途径,只能运行在数据库目录所在的机器上,并且只能备份MyISAM类型的表。要使用该备份方法必须可以访问备份的表文件。
4.mysql命令导入sql文件还原
该方式必须确保原数据库和待还原的数据库主版本号一致,并且只适用于MyISAM引擎的表。
5.相同版本数据库之间迁移
6.使用mysqlbinlog恢复数据
选择方法:按需选择。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值