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恢復數據
選擇方法:按需選擇。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章