mysql认证权限语句_mySQL教程 第12章 MySQL用户和权限管理

本教程详细介绍了如何在MySQL中进行用户管理,包括查看权限表、创建用户、设置与重置密码、授权与撤销权限。通过实践操作,如创建webuser用户并授予不同级别的权限,从列权限到数据库权限,再到全局权限,深入理解MySQL的权限系统。
摘要由CSDN通过智能技术生成

第12章 MySQL用户和权限管理

MySQL账户管理

练习1:查看mysql数据库中的权限表

使用putty连接ubuntu服务器。输入以下命令查看mySQL中的权限表。

root@mySQL1:~# mysql -u root -p

Enter password:

mysql> use mysql;

mysql> show tables;

24fc72072ab7c559b3d33d09c91a75c5.png

练习2:使用命令行创建mySQL用户

本练习你将使用putty连接到Ubuntu服务器,使用mysql工具查看mySQL用户,创建新用户。授予用户权限。在mysql数据库中user表存储了用户和全局权限

1. 查看用户

使用putty连接到UbuntuServer

root@ubuntuServer:~# mysql -u root -p

Enter password:

mysql> use mysql;

mysql> select user,host from user;

d1f7d4a5208727cf6f923708ea753e0a.png

最好不要删除127.0.0.1和localhost,否则在服务器本地不能连接mySQL。

2. 使用create user创建新用户

使用CREATE USER创建新用户,没有赋予任何权限。

下面创建两个用户webuser,一个允许本地登录,一个允许192.168.80.网段能够登录,注意密码不一样。

mysql> create user 'webuser'@'localhost' identified by 'a1!';

mysql> create user 'webuser'@'192.168.80.%' identified by 'a2!';

创建不需要登录密码的用户,不需要identified by。

400469_1361517646mgdX.png

3. 使用grant授权用户并创建用户(创建mySQL管理员)

下面使用grant语句创建一个root用户,该用户可以在任何计算机登录,授予所有权限,所有数据库所有表,能够且能够授权。

mysql>grant all privileges on *.* to 'root'@'%' identified by 'a1!' with grant option;

mysql> flush privileges;

dc3fd4caf089e513400f5394a364fc3e.png

4. 重设用户密码

将'webuser'@'192.168.80.%'用户密码设置为123456

注意:mySQL用户webuser

mysql> set password for 'webuser'@'192.168.80.%'=password('123456');

练习3:mySQL授权

下面的练习,将会授权练习2创建的用户webuser@localhost对mySQL数据库对象的访问权限,权限由小变大。并验证权限。

MySQL权限级别

全局权限

数据库权限

表权限

列权限

1. 授予列权限

授予用户webuser@localhost能够查询schoolDB数据的所有表,只能更新TStudent表的sname和Email列。

授予用户能够更改数据库schoolDB.TStudent的Email,Class

mysql> grant select on schoolDB.* to 'webuser'@'localhost';

mysql> grant update(Email,Class) on schoolDB.TStudent to 'webuser'@'localhost';

mysql> flush privileges;

f3fdf4bb42817b8712b55c50fddca976.png

2. 验证授权

再打开Putty,使用root连接,登录mySQL使用webuser@localhost,验证权限。

字符集设置为UTF-8

fbfeaa5f1e12c20671099dbc421433dd.png

使用webuser连接mysql

924ee1bed912d9b5f785e7024b3a94ee.png

更改数据库,查询Tstudent表,可以看到能查询

a45a2c2d8f03bd88c0ba0f77704cbb6d.png

更改姓名遭到失败

mysql> update TStudent set Sname='zhang' where StudentID='00010';

更改班级成功

mysql> update TStudent set Class='NET' where StudentID='00010';

56dad2d41b2c035838e6fd9a60168274.png

插入记录和删除记录都被拒绝

32855893696e991c29db79decbbf7de3.png

这足以证明授权成功。

3. 授予表权限

授权'webuser'@'localhost'用户能够对数据schoolDB中Tstudent能够select,update,delete,insert权限,刷新权限。

mysql> grant select,update,delete,insert on schoolDB.* to 'webuser'@'localhost';

400469_1361517652h7Od.png

这次不用重新连接,直接验证能够插入成功。

mysql> use schoolDB;

mysql> insert TStudent (StudentID,sname) value ('00012','zhangjing');

mysql> delete from TStudent where studentID='00010';

5325deec2382ea7343b2f6d232968abe.png

创建一个新的表,遭到拒绝

mysql> create table webTB (sid int,sname varchar(10));

删除现有表,遭到拒绝

mysql> drop table TScore;

c0c315276738ab7c56849602c125fa6a.png

4. 授予数据权限

在root@localhost打开的窗口。执行以下命令。

授权'webuser'@'localhost'用户能够对数据库schoolDB完全控制。

mysql> grant all privileges on schoolDB.* to 'webuser'@'localhost';

mysql> flush privileges;

df512729a0efda6b3353254f5e6fb704.png

5. 验证数据库权限

在webuser@localhost登录,退出,重新登录。

可以创建表

可以删除表

9e0d8bfd32d1d06bc58b1b0f87187a50.png

创建数据库失败

mysql> create database webdb1;

f48f18839258aa6c12fe604692f72880.png

6. 授予全局权限

在root@localhost登录的窗口,授予webuser@localhost为mysql数据库所有权限,即mySQL管理员。

mysql> grant all privileges on *.* to 'webuser'@'localhost';

mysql> flush privileges;

1d084eed741698669263846590eff456.png

插入一条记录,拒绝。

7. 验证全局权限

在webuser@localhost打开的窗口。

退出,重新登录mySQL,创建数据库,能够成功。

8d497b0442da4c3105691042ad885503.png

练习4:查看授予的权限

使用root@localhost连接mySQL,查看授予的权限。

mysql> show grants for 'webuser'@'localhost';

d5f586dfbce65493542223d4e5dedc61.png

练习5:取消授权

取消授予的权限

mysql> revoke update(Email,Class) on schoolDB.TStudent from 'webuser'@'localhost';

mysql> flush privileges;

80a622f8babf366f21ee98b8b0107987.png

再次查看权限,发现该用户的权限只剩下两条。

mysql> flush privileges;

mysql> show grants for 'webuser'@'localhost';

142e358cdb4451924dda3f39ea2f9372.png

练习:6:使用图形界面查看设置的权限

使用mySQL Manager连接,可以创建用户,授权全局权限,表权限,列权限。

8a85b1ecbf910288ebff67fad17047e8.png

909939e86bbadcf357ce6eb23ff87c76.png

点击下图中92171cd2b969a32cd21985cadd919980.png,可以看到所有用户,全局权限,表权限和列权限。

15fb8432db9a268dc1bb85dc5544885b.png

练习7:恢复root密码

忘记了root密码,可以更改配置文件,在[mysqld]段中加入一行“skip-grant-tables”,重启mySQL服务,可以使用root账号空密码登录mySQL。

sudo vi /etc/mysql/my.cnf

bb95f8a265f22439ae459a213e321082.png

重启mySQL服务

root@ubuntuServer:~# /etc/init.d/mysql restart

再次登录不需要输入密码。

1afbec8500fa56de1997082f5c347443.png

重设密码

mysql> use mysql;

mysql> update user set password=PASSWORD('123') where user='root';

95504bfa20e91af9279afb9297b3eafc.png

编辑配置文件

注释掉

skip-grant-tables

重启mySQL服务

root@ubuntuServer:~# /etc/init.d/mysql restart

使用新密码登录

cc5edda53c504164eff0b90d43aff4bf.png

广告

cb98a0e567a89db8f46e3194128a463f.png

034fe953ab8b26bdfc6ba84cdaa29494.png

8a236e28ea13fef87b8a8fc9231fce3e.png

97b832d00879468bafbcf1f5c5191925.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值