MySQL访问控制

MySQL访问控制

【目的】

1、了解MySQL的访问控制原理

2、了解MySQL用户管理方法

3、掌握MySQL的基本权限操作语句

【知识点】

连接验证修改权限请求验证。

【原理】

       数据库中通常包含重要的数据这些数据的安全性和完整性需要通过访问控制来维护MySQL访问控制实际上就是为用户提供且仅提供他们所需的访问权只有使用已有用户登录以后,才能凭借具有的权限对数据库的数据进行访问或删改等操作MySQL的用户信息存储在其自带的数据库中,可以使用相应的SQL语句创建新用户或者删除已有用户。

       MySQL会自动创建一个名为root的用户,root用户拥有完全控制整个MySQL服务器的权限。为了避免root权限被恶意使用,需要创建一些具适当权限的用户。对于这些用户,可以用标准的SQL语句GRANTREVOKE来修改控制用户访问的授权表。MySQL就是通过上述方法,即授予不同用户相应的权限来实现访问控制的。

【实验设备】

主机:Windows7虚拟机
配置:MySQL5.5

【实验思路】

1、查询my.user表中数据库的使用者账号。

2、创建新用户。

3、给用户分配权限。

4、通过操作数据库来验证用户权限。

【实验步骤】

1、单击屏幕左下角的【开始】图标。

2、在搜索框中搜索cmd,并单击cmd运行。

3、成功打开命令行。

4、在安装好mysql服务器后,就会创建一个root用户,root用户拥有完全控制整个mysql服务器的权限。输入命令mysql-u root-p并输入密码111,使用root账号连接到数据库。连接成功界面

5、创建数据库seller。

6、在seller库下创建表user。

7、mysql的用户账号及相关信息存储在名为mysql的数据库(系统)中,其中的user表包含了所有用户的账号。通过使用select user from mysql.user命令可以查询到所有的用户。

8、为了确保数据的安全,应尽量避免使用root账号登录系统。用create命令创建一个新用户,其用户名为zhangsan,密码为123。此处的localhost表示该用户只能在本地登录,不能

在另外一台机器上远程登录。

9、在未给新建用户分配权限之前,新用户只能登录MySQL服务器,除此之外不具有其他权限。可以使用如下命令查看该用户的权限。输出显示用户zhangsan的权限为usage on*.*,即

其不具有对任何数据库进行任何操作的权限。

 10、再打开一个cmd,使用新创建的用户zhangsan与本机IP地址登录服务器。因为创建zhangsan用户时只允许其在本地连接服务器,所以这里使用IP登录会导致出错而无法连接。

11、再打开一个cmd,使用zhangsan用户登录MySQL服务器,输入密码123。默认登录是在本地连接服务器,与创建zhangsan用户时赋予它的权限相符,因此能成功登录服务器。此步

骤与步骤10形成对照。

localhost 127.0.0.1和本机ip三者的区别https://www.cnblogs.com/lspbk/p/14334582.html

12、尝试使用用户zhangsan执行创建数据库的命令。命令失败,证明用户zhangsan确实没有创建数据库的权限。

 

13、尝试使用用户zhangsan执行查询数据库的命令。命令失败,证明用户zhangsan确实没有查询数据库的权限。

 

14、使用root账号登录MySQL(同第四步)。通过grant命令授予用户zhangsan在seller数据库中user表下对id和username两列进行select的权限。

 

15、使用用户zhangsan再次执行查询命令,命令成功。

 

16、使用用户zhangsan执行插入命令,命令不成功。可见只有被授予权限的操作才能执行。

 

17、切换到root用户。授予用户zhangsan对seller数据库下所有表的所有权限。

 

18、授予用户zhangsan创建新用户的权限。

 

19、切换到zhangsan用户。再次执行插入命令,命令成功。

 

 

20、使用zhangsan用户创建一个新用户wangwu。

 

21、用revoke命令收回用户zhangsan对表seller.user的权限。  (切换root用户收回权限)

  

22、修改用户名操作。将用户zhangsan的名字改为lisi。

 

//在root用户下查看user

23、将lisi的用户重置密码为‘123456’。

 

//root用户下修改密码

24、删除用户lisi。

 

25、再次查看user表,证明已删除成功。

【实验预期】

1、通过SQL语句实现创建并连接用户。

2、通过SQL语句实现更改用户权限,实现对用户访问数据库的控制。

3、能够实现修改用户信息,删除用户。

【实验结果】

1、登录刚创建的用户zhangsan,在没有对其进行授权时,使用该用户查询数据库失败。

2、通过grant命令授予用户zhangsan在seller数据库中user表下对id和username两列进行select的权限。

3、再次执行查询命令成功。

4、修改用户名操作,将zhangsan重命名为lisi。

5、查询用户表,证明修改成功。

6、删除用户lisi。

7、再次查看user表,证明已删除成功。

 

 

     

 

小丑竟是我自己
原文地址:https://www.cnblogs.com/lspbk/p/14334626.html