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

一、实验目的

1.理解My SQL的权限系统的工作原理。

2.理解My SQL账户及权限的概念。

3.掌握管理My SQL账户和权限的方法。

4.学会创建和删除普通用户的方法和密码管理的方法。

5.学会如何进行权限管理。

二、实验内容

1.验证性实验:

2.设计性试验:

三、实验步骤与实验结果

(一)验证性实验

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。

SET PASSWORD = PASSWORD('000000'); 

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

GRANT create,drop ON *.* TO Testuser2@localhost ;

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

CREATE TABLE student.t1(id int);

DROP TABLE jxgl.t1;

6.用root用户登录,收回Testuser1用户和Testuser2用户的所有权限。

REVOKE ALL ON *.* FROM Testuser1@localhost,Testuser2@localhost;

7删除Testuser1用户和Testuser2用户。

DROP USER Testuser1@localhost,Testuser2@localhost;

8.修改root用户的密码。

UPDATE mysql.user SET authentication_string=PASSWORD("1234") WHERE user='root';

(二)设计性试验

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

GRANT SELECT,create,drop,super ON *.* TO examl@localhost identified by '123456' with grant option; 

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

CREATE USER exam2@localhost;

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

UPDATE mysql.user SET authentication_string = password("686868") WHERE user='exam2';

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

GRANT create,drop ON *.* TO exam2@localhost ;

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

revoke all on *.* from examl@localhost,exam2@localhost;

6.删除examl用户和exam2用户。

DROP USER examl@localhost,exam2@localhost;

7.修改root用户的密码。

UPDATE mysql.user SET authentication_string=PASSWORD("12345") WHERE user='root';

四、观察与思考

1、新创建的MySQL用户能否在其他机器上登录MySQL数据库?

答:能,可以用IP地址,回环地址127.0.0.1。
grant all on .to username@’%’ identified by ‘password’;

五、实验要求

按要求完成,详细记录操作步骤,书写实验报告。所有实验环节均由每位学生独立完成,认真记录操作过程,严禁抄袭他人实验结果。

六、实验总结

通过本次实验了学习了MySQL的权限管理,给其他用户的增删改查的权限在方便其他用户操作的同时又增加了数据库的安全性。