MySQL访问控制
【目的】
1、了解MySQL的访问控制原理
2、了解MySQL用户管理方法
3、掌握MySQL的基本权限操作语句
【知识点】
连接验证、修改权限、请求验证。【原理】
数据库中通常包含重要的数据,这些数据的安全性和完整性需要通过访问控制来维护。MySQL的访问控制实际上就是为用户提供且仅提供他们所需的访问权。只有使用已有用户登录以后,才能凭借其具有的权限对数据库的数据进行访问或删改等操作。MySQL的用户信息存储在其自带的数据库中,可以使用相应的SQL语句创建新用户或者删除已有用户。
MySQL会自动创建一个名为root的用户,root用户拥有完全控制整个MySQL服务器的权限。为了避免root权限被恶意使用,需要创建一些具有适当权限的用户。对于这些用户,可以用标准的SQL语句GRANT和REVOKE来修改控制用户访问的授权表。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的权限。
22、修改用户名操作。将用户zhangsan的名字改为lisi。
23、将lisi的用户重置密码为‘123456’。
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表,证明已删除成功。